2016-11-25 58 views
2

我有一个约17百万的交易数据表。它在Key列上聚集了Key和Non Clustered密钥。要简单地选择它也需要11分钟来检索数据,而对于DML操作来说,这需要花费很长时间。简单的选择是在桌子上花费大量时间

简单的选择

Select * from TransactionTable 

人们会问你已经从你的身边做了什么

1)我已经创建的索引(群集和非群集)使用DM

2)访问物理统计我检查过表是否分散了?

3)在做DML操作之前,我重新组织了索引。

请给我建议的方式

+0

您是否选择了全部1700万个*? – artm

+1

你忘记提及查询本身。如果它是'select * from table',那么由于您选择了大量的数据,所以没有任何idex会帮助您。 –

+0

@AndyKorneyev简单的选择只是检索数据 – mohan111

回答

1

我只能认为,试图通过调整数据类型的最低要求,以减少表的大小。如果您有很多空值,请尝试使用稀疏列。

+0

请您详细说明 – mohan111

+0

例如,如果您没有保存unicode文本并且保持数据长度达到最低要求,请不要在int值足够的情况下使用bigint,或者使用unicode类型。如果列中有大量空值,请在列属性中将Sparse设置为True。它会减少表格的整体大小。 – cloudsafe

1

什么可能会帮助你,保持数据压缩。
如果我没有记错的话,你必须重新填充表格。
然而,更有趣的是,你将如何处理数据。

+0

你能告诉我压缩的确切用法吗? – mohan111

+0

@ mohan111。忘记数据库,并告诉我什么是合适的用途。 –

+0

我知道压缩的含义,但在这种情况下数据压缩 – mohan111