即使在ghost记录清理后数据库性能也很慢

时间:2016-12-01 16:42:50

标签: sql sql-server sql-server-2014 sqlperformance

我有一个超过 300万行的日志数据库。显然它响应缓慢,因此我决定截断表格。

当我尝试在截断之前删除外键约束时,sql管理工作室崩溃了,我无法截断表。因此我删除了数据库并再次运行脚本来创建数据库和表。要删除数据库,我只需右键单击数据库并单击“删除”选项。

即使在那之后,我发现SELECT / INSERT操作的时间与之前一样长。所以我继续寻找Ghost records,但找不到任何东西。可能是因为我已经重新创建了数据库。

我仍然继续前进,迫使Ghost清理

DBCC ForceGhostCleanup;
GO

我无法改善表现。我该怎么做才能解决这个问题?

谢谢。

2 个答案:

答案 0 :(得分:1)

你看过任何现有的索引碎片吗?您可能需要重建或重新组织索引。

本文详述了此过程:MSDN Index rebuild or reorg

以下是reorg语句示例:

ALTER INDEX IX_Employee_OrganizationalLevel_OrganizationalNode ON HumanResources.Employee  
REORGANIZE ;

以下是重建声明示例:

ALTER INDEX PK_Employee_BusinessEntityID ON HumanResources.Employee
REBUILD;

您也可以使用数据库维护计划来执行此类维护,该计划可以使用类似界面的向导轻松实现。

答案 1 :(得分:0)

根据Mister Positive和Juan Carlos Oropeza提供的评论,我发现SqlServer占用了我PC上94%的内存,即使我删除了数据库,它也没有释放内存(不是磁盘空间) )。

要解决这个问题,我不得不重新启动SqlServer,它将内存消耗恢复到9%,然后一切顺利。