sql - 创建索引 SQL Server 2008

标签 sql sql-server sql-server-2008 sql-server-2012

最近我正在进行数据库微调。我对 SQL Server 有一些想法并决定创建一些索引。

提到了这个http://sqlserverplanet.com/ddl/create-index

但我不明白其他类型的索引(例如 INCLUDEWITH 选项)有何帮助。我尝试谷歌,但没有看到何时使用这些的简单描述。

CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
INCLUDE (President,YearsInOffice,RatingPoints)
WHERE ElectoralVotes IS NOT NULL

CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
WITH ( DATA_COMPRESSION = ROW )

CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
WITH ( DATA_COMPRESSION = PAGE )

我应该在什么场景下使用上面的内容?它们会提高性能吗?

最佳答案

数据压缩也将有助于您的查询性能,因为压缩后,当您运行查询时,将加载更少的页面/范围,因为 I/O 减少了,减少 I/O 始终是一个不错的选择。

关于sql - 创建索引 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15652587/

相关文章:

mysql - 在 where 子句中使用别名 - SQL

xml - 使用 SQL 查询替换 Xml 列中的属性名称

sql-server - 在运行时以编程方式创建 sql server 数据库

sql-server - SQL Server 2008 所有服务都在运行,但网络配置为空

c# - 如何在 asp 中的搜索表单中防止 SQL 注入(inject)

php - MySQL,将特定行列合并到另一行

sql-server - 如何确定 SQL Server 实例是否区分大小写

sql-server - 如何在 SQL Server 2008 上找到禁用的索引

mysql - 查询以检查列之间的关系?

mysql - 我想将所有这些表(学生、教师、类(class))链接到父表(类(class)),但我有错误?