问题标签 [columnstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
366 浏览

indexing - 列存储索引多少列

我有一个有 7 列的表。用户可能希望这些列中的任何一个用于查询。所以我要为所有 7 列创建一个列存储索引。这是一个合理的计划吗?还是为所有列创建有问题?

0 投票
1 回答
280 浏览

sql - 选择所有列时仓库表中的列存储索引

我有大约 600 000 行和 20 列的仓库表。行数往往增长得相当快。我通常只需要执行这个查询:

目前我只是在主键上聚集了索引,没有更多的索引。这个返回大约 200 000 行的一年查询执行大约 6 分钟,这对我来说真的很慢。列存储索引可以帮助我,将它放在哪一列,包括哪些列?

0 投票
1 回答
73 浏览

sql-server - 非聚集列存储索引磁盘空间 (SQL Server 2012)

非聚集列存储索引是否占用额外的磁盘空间?我意识到传统的非聚集索引会。但是,我认为使用列存储索引(包括 NC)将存储基础表数据以进行列压缩。

如果它确实单独存储了 NC 列存储索引,它本质上是在制作包含索引中那些特定列的表的副本吗?

提前感谢您的任何澄清。

0 投票
0 回答
71 浏览

sql-server - 对 Sql Server 列存储索引的 XML/A HTTP MDX 访问

我有一个软件组件(DevExtreme PivotGrid),它支持绑定到它执行 MDX 查询的 XML/A HTTP 端点,这是它支持的唯一远程绑定。这种绑定的一个好处是 Excel 也可以将其枢轴网格绑定到它上面。

XML/A 端点由附带并绑定到 Sql Server Analysis Services 实例的“数据泵”IIS 模块实现。

Sql Server 的最新发展为 Sql Server 本身带来了一些 OLAP 功能:列存储索引,据推测它是一种与 SSAS 在表格模型中使用的技术类似的技术。

让 Sql Server 正确执行此操作的优点是:

  • 无需 SSAS 实例,从而降低了部署复杂性。
  • 查询结果反映的是实时数据,而不是一些夜间快照。

但是,Sql Server 本身不支持 XML/A 或 MDX,并且它不带有这样的数据泵。

所以我的问题:

  • 以利用列存储索引的方式对 Sql Server 运行这样的 XML/A MDX 端点的最佳方式是什么?
  • 我知道有一种称为“直接查询模式”的东西,其中 SSAS 将 MDX 查询作为 SQL 推迟到 Sql Server 实例,但不清楚这是否适用于 ColumnStore 索引。可以?
  • 如果根本没有办法,是否至少存在某种 Excel 可以对抗的端点?
0 投票
1 回答
923 浏览

indexing - 我的列存储索引需要多少内存?

我想将聚集列存储索引添加到 SQL Server 2014 数据库中的某些表。在这样做之前,我需要收集所需内存的良好估计。如何预测聚集列存储内存使用情况?

我知道的事情:

  • 磁盘上表的大小
  • 如何查询表
  • 这些表在磁盘上的增长率
0 投票
0 回答
153 浏览

sql - SQL Server 2016 - 列存储和提取

这是我的问题,我有一个大约 5,000,000 行的 SQL Server 2016 表,它有一个聚集的列存储索引。

以下查询以毫秒为单位运行:

在末尾添加“OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY”,例如:

需要几分钟才能运行,我们发现问题是查询没有返回 20 行,如果我们将查询更改为

它再次以毫秒为单位执行。

关于如何克服这个问题而不必先进行计数以手动设置OFFSETFETCH NEXT值的任何想法?

0 投票
1 回答
186 浏览

sql-server - 在具有 350 亿行的列存储索引表上重新创建索引

我有一张大表,需要重建索引。该表配置了聚集列存储索引 (CCI),我们意识到我们需要根据特定用例对数据进行排序。

用户执行日期范围和相等查询,但由于数据未按照他们想要的方式排序,因此查询不是最佳的。SQL 咨询团队建议将数据组织在正确的行组中,以便查询可以从行组消除中受益。

表说明:

  • 按 T​​imestamp1 分区,每月 PF
  • 总行数:310 亿
  • 预计行大小:60 字节
  • 估计表大小:600 GB

表定义:

环境:

  • SQL Server 2014 企业版。
  • 8 核,32 GB 内存
  • VMWare 高性能平台

我的策略是:

  1. 删除现有的 CCI
  2. 使用正确的列创建普通聚集行索引,这将对数据进行排序
  3. 使用 DROP EXISTING = OFF 重新创建 CCI。这会将现有的 CRI 转换为 CCI。

我的问题是:

  1. 重建索引或仅重新加载数据是否有意义?重新加载可能需要一个月才能完成,因为重建索引可能需要同样多的时间,也许......
  2. 如果我删除现有的 CCI,表会扩展,因为它可能不再被压缩?
0 投票
1 回答
2961 浏览

sql-server - 表和索引视图都可以是列存储吗?

我有一个包含数百万条记录的数据仓库事实表,它是一个聚集列存储表。我想要一个表的索引视图,它将文本列的数值转换为数字,并将同一列的文本值转换为空白,以获得更快的性能。

如果我将视图创建为聚集索引视图,视图的数据是否也会以列存储格式存储?

0 投票
1 回答
9938 浏览

sql-server - 在插入操作之前禁用索引并在插入后启用返回索引的最佳方法

我计划在 SQL Server 2014 上创建一个非聚集列存储索引。

但是非聚集列存储索引是只读的,不能进行DML操作,我们需要在插入前禁用,插入后重新启用。

执行此任务的最佳方法是什么?

0 投票
1 回答
791 浏览

sql-server - 查询以确定当前 SQL Server 版本是否支持列存储索引

我有一个创建一些动态表的存储过程。如果 SQL Server 的主机版本支持列存储索引,那么我想创建一个列存储索引,否则回退到只创建一个普通的行存储索引。

我找到了该dm_db_persisted_sku_features表,但这只是告诉您当前正在使用哪些非标准功能,而不是支持哪些功能:

如何从查询内部确定 SQL Server 版本是否支持列存储索引?