问题标签 [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.
indexing - 列存储索引多少列
我有一个有 7 列的表。用户可能希望这些列中的任何一个用于查询。所以我要为所有 7 列创建一个列存储索引。这是一个合理的计划吗?还是为所有列创建有问题?
sql - 选择所有列时仓库表中的列存储索引
我有大约 600 000 行和 20 列的仓库表。行数往往增长得相当快。我通常只需要执行这个查询:
目前我只是在主键上聚集了索引,没有更多的索引。这个返回大约 200 000 行的一年查询执行大约 6 分钟,这对我来说真的很慢。列存储索引可以帮助我,将它放在哪一列,包括哪些列?
sql-server - 非聚集列存储索引磁盘空间 (SQL Server 2012)
非聚集列存储索引是否占用额外的磁盘空间?我意识到传统的非聚集索引会。但是,我认为使用列存储索引(包括 NC)将存储基础表数据以进行列压缩。
如果它确实单独存储了 NC 列存储索引,它本质上是在制作包含索引中那些特定列的表的副本吗?
提前感谢您的任何澄清。
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 可以对抗的端点?
indexing - 我的列存储索引需要多少内存?
我想将聚集列存储索引添加到 SQL Server 2014 数据库中的某些表。在这样做之前,我需要收集所需内存的良好估计。如何预测聚集列存储内存使用情况?
我知道的事情:
- 磁盘上表的大小
- 如何查询表
- 这些表在磁盘上的增长率
sql - SQL Server 2016 - 列存储和提取
这是我的问题,我有一个大约 5,000,000 行的 SQL Server 2016 表,它有一个聚集的列存储索引。
以下查询以毫秒为单位运行:
在末尾添加“OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY”,例如:
需要几分钟才能运行,我们发现问题是查询没有返回 20 行,如果我们将查询更改为
它再次以毫秒为单位执行。
关于如何克服这个问题而不必先进行计数以手动设置OFFSET
和FETCH NEXT
值的任何想法?
sql-server - 在具有 350 亿行的列存储索引表上重新创建索引
我有一张大表,需要重建索引。该表配置了聚集列存储索引 (CCI),我们意识到我们需要根据特定用例对数据进行排序。
用户执行日期范围和相等查询,但由于数据未按照他们想要的方式排序,因此查询不是最佳的。SQL 咨询团队建议将数据组织在正确的行组中,以便查询可以从行组消除中受益。
表说明:
- 按 Timestamp1 分区,每月 PF
- 总行数:310 亿
- 预计行大小:60 字节
- 估计表大小:600 GB
表定义:
环境:
- SQL Server 2014 企业版。
- 8 核,32 GB 内存
- VMWare 高性能平台
我的策略是:
- 删除现有的 CCI
- 使用正确的列创建普通聚集行索引,这将对数据进行排序
- 使用 DROP EXISTING = OFF 重新创建 CCI。这会将现有的 CRI 转换为 CCI。
我的问题是:
- 重建索引或仅重新加载数据是否有意义?重新加载可能需要一个月才能完成,因为重建索引可能需要同样多的时间,也许......
- 如果我删除现有的 CCI,表会扩展,因为它可能不再被压缩?
sql-server - 表和索引视图都可以是列存储吗?
我有一个包含数百万条记录的数据仓库事实表,它是一个聚集列存储表。我想要一个表的索引视图,它将文本列的数值转换为数字,并将同一列的文本值转换为空白,以获得更快的性能。
如果我将视图创建为聚集索引视图,视图的数据是否也会以列存储格式存储?
sql-server - 在插入操作之前禁用索引并在插入后启用返回索引的最佳方法
我计划在 SQL Server 2014 上创建一个非聚集列存储索引。
但是非聚集列存储索引是只读的,不能进行DML操作,我们需要在插入前禁用,插入后重新启用。
执行此任务的最佳方法是什么?
sql-server - 查询以确定当前 SQL Server 版本是否支持列存储索引
我有一个创建一些动态表的存储过程。如果 SQL Server 的主机版本支持列存储索引,那么我想创建一个列存储索引,否则回退到只创建一个普通的行存储索引。
我找到了该dm_db_persisted_sku_features
表,但这只是告诉您当前正在使用哪些非标准功能,而不是支持哪些功能:
如何从查询内部确定 SQL Server 版本是否支持列存储索引?