Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
5741c026
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5741c026
编写于
12月 19, 2019
作者:
H
hjxilinx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
opt query performance.
上级
399fa209
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
3 deletion
+16
-3
src/system/detail/src/vnodeQueryImpl.c
src/system/detail/src/vnodeQueryImpl.c
+16
-3
未找到文件。
src/system/detail/src/vnodeQueryImpl.c
浏览文件 @
5741c026
...
...
@@ -526,6 +526,13 @@ static int vnodeGetCompBlockInfo(SMeterObj *pMeterObj, SQueryRuntimeEnv *pRuntim
SCompInfo *compInfo = (SCompInfo *)(data + compHeader->compInfoOffset);
#else
SCompHeader
*
compHeader
=
(
SCompHeader
*
)(
buf
+
sizeof
(
SCompHeader
)
*
pMeterObj
->
sid
);
// no data in this file for specified meter, abort
if
(
compHeader
->
compInfoOffset
==
0
)
{
free
(
buf
);
return
0
;
}
lseek
(
pVnodeFileInfo
->
headerFd
,
compHeader
->
compInfoOffset
,
SEEK_SET
);
SCompInfo
CompInfo
=
{
0
};
...
...
@@ -547,8 +554,13 @@ static int vnodeGetCompBlockInfo(SMeterObj *pMeterObj, SQueryRuntimeEnv *pRuntim
vnodeFreeFieldsEx
(
pRuntimeEnv
);
pQuery
->
numOfBlocks
=
(
int32_t
)
compInfo
->
numOfBlocks
;
/*
* +-------------+-----------+----------------+
* | comp block | checksum | SField Pointer |
* +-------------+-----------+----------------+
*/
int32_t
compBlockSize
=
compInfo
->
numOfBlocks
*
sizeof
(
SCompBlock
);
size_t
bufferSize
=
compBlockSize
+
sizeof
(
TSCKSUM
);
size_t
bufferSize
=
compBlockSize
+
sizeof
(
TSCKSUM
)
+
POINTER_BYTES
*
pQuery
->
numOfBlocks
;
// prepare buffer to hold compblock data
if
(
pQuery
->
blockBufferSize
!=
bufferSize
)
{
...
...
@@ -562,7 +574,8 @@ static int vnodeGetCompBlockInfo(SMeterObj *pMeterObj, SQueryRuntimeEnv *pRuntim
memcpy(pQuery->pBlock, (char *)compInfo + sizeof(SCompInfo), (size_t)compBlockSize);
TSCKSUM checksum = *(TSCKSUM *)((char *)compInfo + sizeof(SCompInfo) + compBlockSize);
#else
read
(
pVnodeFileInfo
->
headerFd
,
pQuery
->
pBlock
,
bufferSize
);
// read data: comp block + checksum
read
(
pVnodeFileInfo
->
headerFd
,
pQuery
->
pBlock
,
compBlockSize
+
sizeof
(
TSCKSUM
));
TSCKSUM
checksum
=
*
(
TSCKSUM
*
)((
char
*
)
pQuery
->
pBlock
+
compBlockSize
);
// read(pVnodeFileInfo->headerFd, &checksum, sizeof(TSCKSUM));
#endif
...
...
@@ -573,7 +586,7 @@ static int vnodeGetCompBlockInfo(SMeterObj *pMeterObj, SQueryRuntimeEnv *pRuntim
return
-
1
;
//TODO free resource in error process
}
pQuery
->
pFields
=
(
SField
**
)((
char
*
)
pQuery
->
pBlock
+
compBlockSize
);
pQuery
->
pFields
=
(
SField
**
)((
char
*
)
pQuery
->
pBlock
+
compBlockSize
+
sizeof
(
TSCKSUM
)
);
vnodeSetCompBlockInfoLoaded
(
pRuntimeEnv
,
fileIndex
,
pMeterObj
->
sid
);
int64_t
et
=
taosGetTimestampUs
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录