Sql 简单选择在桌面上花费了大量时间

Sql 简单选择在桌面上花费了大量时间,sql,sql-server,performance,optimization,Sql,Sql Server,Performance,Optimization,我有一个大约1700万事务数据的表。它在键列上具有聚集键和非聚集键。要简单地选择,检索数据需要11分钟,而对于DML操作,则需要很长的时间 简单选择 Select * from TransactionTable 人们会问你做了什么 1) 我已创建索引(群集和非群集) 2) 使用DM Views physical stats,我检查了表是否存在碎片 3) 在进行DML操作之前,我已经重新组织了索引 请向我推荐一种方法我只能考虑通过将数据类型调整到最低要求来减少表的大小。如果有很多空值,请尝试使用

我有一个大约1700万事务数据的表。它在键列上具有聚集键和非聚集键。要简单地选择,检索数据需要11分钟,而对于DML操作,则需要很长的时间

简单选择

Select * from TransactionTable
人们会问你做了什么

1) 我已创建索引(群集和非群集)

2) 使用DM Views physical stats,我检查了表是否存在碎片

3) 在进行DML操作之前,我已经重新组织了索引


请向我推荐一种方法

我只能考虑通过将数据类型调整到最低要求来减少表的大小。如果有很多空值,请尝试使用稀疏列。

我只能考虑通过将数据类型调整到最低要求来减少表的大小。如果有很多空值,请尝试使用稀疏列。

可能对您有所帮助的是保持数据压缩。
如果我没记错的话,您必须重新填充表格。

然而,更有趣的是,您将如何处理数据。

可能对您有所帮助的是保持数据的压缩。
如果我没记错的话,您必须重新填充表格。


然而,更有趣的是,您将如何处理数据。

您是否用*选择了所有1700万?您忘了提到查询本身。如果是
select*from table
,那么就没有任何idex可以帮助您,因为您选择的是大量数据。@AndyKorneyev simple select仅限于检索data@mohan111您正在从巨大的表中选择所有数据。在这种情况下,没有索引可以帮助您。这里没有什么需要优化的地方。@mohan111这根本不是SQL Server的工作方式。单个查询及其使用的索引会影响性能。您绝对不能使用表中的
select*
来判断性能。您是用*来选择所有1700万项吗?您忘了提到查询本身。如果是
select*from table
,那么就没有任何idex可以帮助您,因为您选择的是大量数据。@AndyKorneyev simple select仅限于检索data@mohan111您正在从巨大的表中选择所有数据。在这种情况下,没有索引可以帮助您。这里没有什么需要优化的地方。@mohan111这根本不是SQL Server的工作方式。单个查询及其使用的索引会影响性能。您绝对不能使用
select*from table
来判断性能。请详细说明。g在int足够的情况下不要使用bigint,如果您没有保存unicode文本并将数据长度保持在最低要求,则不要使用unicode类型。如果有包含大量空值的列,请在列属性中将“稀疏”设置为True。它将减少表的整体大小。请您详细说明。g如果int足够,请不要使用bigint,如果您没有保存unicode文本并将数据长度保持在最低要求,请不要使用unicode类型。如果有包含大量空值的列,请在列属性中将“稀疏”设置为True。这会缩小桌子的整体尺寸。你能告诉我桌子的确切用途吗compression@mohan111. 忘了数据库吧,请告诉我压缩是用来做什么的。我知道压缩的含义,但数据压缩在这里scenario@mohan,一如既往,减少IO,用CPU付费。你能告诉我CPU的确切使用情况吗compression@mohan111. 忘了数据库吧,请告诉我压缩是用来做什么的。我知道压缩的含义,但数据压缩在这里scenario@mohan,一如既往,减少IO,用CPU付费。