首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储和索引datetime2与位+ datetime2

存储和索引datetime2与位+ datetime2
EN

Stack Overflow用户
提问于 2017-02-21 13:05:00
回答 1查看 132关注 0票数 0

我有一些较大的表(大约2000万行),需要使用附加的bit存储datetime2信息。我知道我总是只查询bit信息,当bit信息为1时,总是存在datetime2信息。我正在考虑两种方法来实现这一点:

( a)索引将只包含Enabled

代码语言:javascript
复制
create table Items ( 
    Enabled bit not null,
    EnabledWhen datetime2 null
)

( b)索引只包含Enabled,但查询始终是Enabled is nullEnabled is not null

代码语言:javascript
复制
create table Items (
    Enabled datetime2 null
)

哪个版本更有效率,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 14:18:38

如果没有用例,这是很难回答的。索引位列的效率仅略高于date列,因为索引可能更小,并且适合页面中更多的记录,但是,添加位列将使表稍微宽一点,即效率稍低。

如果使用聚集索引,则不要添加位列,只添加日期索引。

如果这是一个覆盖性非聚集索引,并且需要包含日期列,则不要添加位列,而是索引日期。

如果这是针对不需要日期的覆盖非聚集索引,则使用位列并包括所需列,前提是日期不包括,并且不使用date列创建另一个非聚集索引。

总的来说,我觉得位列是浪费空间,因为用例非常狭窄。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42368133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档