我有一个超过 300万行的日志数据库。显然它响应缓慢,因此我决定截断表格。
当我尝试在截断之前删除外键约束时,sql管理工作室崩溃了,我无法截断表。因此我删除了数据库并再次运行脚本来创建数据库和表。要删除数据库,我只需右键单击数据库并单击“删除”选项。
即使在那之后,我发现SELECT / INSERT操作的时间与之前一样长。所以我继续寻找Ghost records,但找不到任何东西。可能是因为我已经重新创建了数据库。
我仍然继续前进,迫使Ghost清理。
DBCC ForceGhostCleanup;
GO
我无法改善表现。我该怎么做才能解决这个问题?
谢谢。
答案 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%,然后一切顺利。