【发布时间】:2017-04-09 16:09:29
【问题描述】:
我有一个包含大约 1700 万条事务数据的表。它在键列上有聚集键和非聚集键。简单的选择也需要 11 分钟来检索数据,而对于 DML 操作则需要大量时间。
简单选择
Select * from TransactionTable
人们会从你身边问你做了什么
1)我创建了索引(集群和非集群)
2) 使用 DM Views 物理统计我检查了表是否碎片化?
3)在进行 DML 操作之前,我已经重新组织了索引。
请给我建议
【问题讨论】:
-
您是否选择了所有带有 * 的 1700 万?
-
您忘记提及查询本身。如果是
select * from table,那么由于您要选择大量数据,因此根本没有索引对您有帮助。 -
@AndyKorneyev 简单的选择只是检索数据
-
@mohan111 您正在从巨大的表格中选择所有数据。在这种情况下,没有索引会对您有所帮助。这里没有什么可以优化的。
-
@mohan111 这根本不是 SQL Server 的工作方式。单个查询及其使用的索引会影响性能。你绝对不能用
select * from table来判断性能。
标签: sql sql-server performance optimization