5 sql-server-2008 sql-server sql-server-2008-r2
在我公司,我们使用 SQL Express 2008 R2,它支持高达 10GB 的数据库。
我们有 2 个数据库,所有表中的行数几乎相同。但是,其中一个大小为 4.5 GB(在开发部门),另一个(生产中的)大小为 9.87GB。
正在开发的数据库是通过批量插入行以进行测试自动生成的。而在生产中的数据库,慢了将近 1 年才能生成如此大量的数据。
特别是一张表,有 4,700,000 行,并进行以下查询:
SELECT colum1,column2 FROM table WHERE column1 = 2
Run Code Online (Sandbox Code Playgroud)
在生产数据库上响应大约需要 2 分钟,在开发数据库中大约需要 20 秒。
我在生产数据库中做了一个收缩,大约需要 20 分钟才能完成,但之后,数据库的大小减少到 7 GB。我尝试通过右键单击重建索引,但它超时并且无法完成重建。
我的问题是:为什么具有相同记录数量的 2 个数据库的大小如此不同,我可以做些什么来提高生产数据库的性能?
谢谢。-
我怀疑如果您使用 SSMS 右键单击,这只是超时。
需要将重建运行为 TSQL 语句。
您可以右键单击 SSMS 并获取删除和重建索引的语法。
至于大小,碎片索引需要更多空间。
鉴于索引重建超时并且查询时间差异很大,您很可能会出现严重碎片化的索引。
您甚至应该对开发数据库进行碎片整理。
归档时间: |
|
查看次数: |
10289 次 |
最近记录: |