我有一个在Windows XP和SQL Server 2000 Service Pack 3上运行的.NET 1.1应用程序。该应用程序使用Enterprise Library Data&异常处理dll。
当我提交一个调用一些存储过程和表格的表格时最后在表中执行INSERT
,sqlsrvr.exe进程持续增加到300-500 MB。表单执行时间超过10分钟。
正常情况下的同一页面,执行时间不超过1分钟。
这里可能会发生什么,以及如何解决?
答案 0 :(得分:6)
消耗大量内存的Sql Server进程是正常的。 SQL Server将占用大量内存,但会在操作系统内存压力下恢复(基于SQL服务器配置的最小和最大内存设置)
如果查询速度很慢,请查看SQL查询和/或缺少索引。
您描述的症状听起来可能是由参数嗅探引起的。确保您的统计信息和索引是最新的,并可能发布您的查询。
答案 1 :(得分:0)
sqlsrvr.exe进程持续增加到300-500MB。
好的,这里的休息在哪里?我有一个16GB的SQL服务器;)
SQL Server,除非在CNOFIGURATION中另外出现,否则将尽可能多地缓存。它读取的每页(8kb)都保留在记忆中。光盘很慢。 ram很快。它假设它是一个服务器,因此可以使用内存。
表单执行的时间超过10分钟。
嗯,让我们看看。
我非常强烈地指出1(缺少索引)或2(糟糕的硬件)。不要把它当作个人,但你整个设置的声音真的已经过时了,你真的不喜欢你处于最佳状态,所以这只是一个没有过去经验的野外拍摄。
我在这个领域最残酷的是一个零索引的人和一个执行30个查询的网页,所有这些都导致了表格扫描,并覆盖了糟糕的普通廉价光盘,因此计算机在半小时内没有响应。
开始:
很难说任何事情除了 - 好 - 你没有提供足够的信息。
我见过这样的陈述:
当我提交一个调用一些存储过程和表格的表格时最后在表中执行INSERT
在12层级联存储过程中爆炸成大量低效操作。
那说,如果是硬件 - 升级到SSD。一个120GB的SSD现在非常便宜而且速度非常快。我现在使用Velociraptors 3进行一些操作,并且可以达到60.000 IPS - 而更高端的光盘可以达到400。