公司ERP系统  使用的是 SQL 2000 数据库,由于软件本身的数据备份 偶尔会出现备份不完整的状况,所以每天都需要停止SQL服务 拷贝数据库文件。但每次关闭SQL再重启后,发现客户端连接速度很慢,同时服务器的内存占用量也在逐渐上涨。等到大概一个客户端登录后5分钟 其他客户端连接 就正常了。请问这是什么原因呢?同时也发现 MYSQL数据库也有同样的情况,服务器数据库服务重启后,首个连接的客户端,速度就是比较慢 待这个客户端 正常后 其他客户端连接 也就正常了??新手求解数据库重启SQL数据备份

解决方案 »

  1.   

    --重启后,所有存储过程的缓存丢失,所有内存中加载的数据丢失,TEMPDB数据库重建
    --重启后,第一个客户连接时,重新编译存储过程,加载数据到内存缓存(内存一直在上涨,但只要内存足够且未设置SQL SERVER的内存上限,除非内存不足,SQL SERVER不会主动释放)。当存储过程缓存且数据已经缓存在了内存里,不再从硬盘上调数据时,速度自然就上去了。
    --还有,要说的是:软件本身的数据备份 偶尔会出现备份不完整的状况。应该不会存在这种情况,楼主还是要好好研究一下这个,重启服务器,是个必不得已的操作……
      

  2.   

    是不是你开启SQL后,很多客户端同时连接导致数量访问大。
      

  3.   

    有个方法是别人说测试成功的,我没去研究过太多,select count(1) from 表名 ,可以把这个表载入缓存,类似于预热,这样运行的时候就不用再把数据从磁盘读入内存,你可以考虑每次重启后,写个脚本执行,把表全部运行一次,然他们尽可能地写入内存。尽可能低地减少加载的速度,至于执行计划,貌似还没什么办法