解决方案 »

  1.   

    貌似不是WEB的问题,应该是SQLSERVER服务的问题,就是样一直长内存直到把能占的用满,不过这是有好处的,可以使一些查询变得更快速,因为它占内存有的用于缓存一些查询计划
      

  2.   

    数据库服务器本来就是要用内存来作缓存,以增强响应时间,如果不作设置,多数数据库服务器会尽量多地占用你的物理内存不过 SQL Server 应该有这个限制设置
      

  3.   

     有一点我说错了,刚启动sqlserver时,内存70MB左右。现在内存几个G都被占完了。电脑就会卡的不行。
      

  4.   

     有一点我说错了,刚启动sqlserver时,内存70MB左右。现在内存几个G都被占完了。电脑就会卡的不行。SQLSERVER和其他应用不一样,内存对它来说是很重要的,所以我们不能用其他应用程序的内存概念来理解它,因此,你给200M的上限感觉太少,你适当调高,重启服务后再试试~
      

  5.   

    抛开异常问题,你知道为什么要用内存不?我奇怪的是难道Oracle和mysql不吃内存?
      

  6.   

    数据库就是靠内存进行缓存数据来提高性能的。
    A)机器内存不足,不够SQL Server正常加载缓存数据。
    B)Web服务有问题,可能一直开着游标没有释放,导致SQL Server无法释放输出结果的缓存。
    具体问题得你自己分析了。
      

  7.   

     有一点我说错了,刚启动sqlserver时,内存70MB左右。现在内存几个G都被占完了。电脑就会卡的不行。SQLSERVER和其他应用不一样,内存对它来说是很重要的,所以我们不能用其他应用程序的内存概念来理解它,因此,你给200M的上限感觉太少,你适当调高,重启服务后再试试~一开始给的是1G内存还是不行,问题相同
      

  8.   

    不是说我想限制他的内存,而是他从开始的占用70MB内存一直涨到3G内存。一直把我剩余的内存全部吃掉了。结果就是我电脑卡的不行。那还怎么开发
      

  9.   

    不是说我想限制他的内存,而是他从开始的占用70MB内存一直涨到3G内存。一直把我剩余的内存全部吃掉了。结果就是我电脑卡的不行。那还怎么开发检查你的程序,有没有死循环之类的,如果你不操作它不涨,那就是你的某些操作出现异常,高版本的SQL Server都有自动释放内存机制,释放不了证明有异常或者高优先级的程序在占用内存,OS无法强制释放
      

  10.   

    不是说我想限制他的内存,而是他从开始的占用70MB内存一直涨到3G内存。一直把我剩余的内存全部吃掉了。结果就是我电脑卡的不行。那还怎么开发检查你的程序,有没有死循环之类的,如果你不操作它不涨,那就是你的某些操作出现异常,高版本的SQL Server都有自动释放内存机制,释放不了证明有异常或者高优先级的程序在占用内存,OS无法强制释放谢谢你的回答,不过我的WEB是从其他地方拿过来的。并没做修改。其他地方运行的好好的。WEB应该改没问题。再说即使我把WEB服务中途关掉,sqlserver所占的内存也不会自动释放。不知道为什么
      

  11.   


    不是说我想限制他的内存,而是他从开始的占用70MB内存一直涨到3G内存。一直把我剩余的内存全部吃掉了。结果就是我电脑卡的不行。那还怎么开发检查你的程序,有没有死循环之类的,如果你不操作它不涨,那就是你的某些操作出现异常,高版本的SQL Server都有自动释放内存机制,释放不了证明有异常或者高优先级的程序在占用内存,OS无法强制释放谢谢你的回答,不过我的WEB是从其他地方拿过来的。并没做修改。其他地方运行的好好的。WEB应该改没问题。再说即使我把WEB服务中途关掉,sqlserver所占的内存也不会自动释放。不知道为什么
    中途停了不会马上释放的,只有os觉得需要更多内存的时候才会要求。http://blog.csdn.net/dba_huangzj/article/details/8627000我这里有个大概检测方法。详细方法在我书上
      

  12.   

    你中途关掉WEB服务,而数据库服务已经占用了内存,这并没有联系。你的WEB程序在别人那不会出现这样的情况,原因还可能出现在数据库的版本差异,WEB程序是否有需要初使化数据,
      

  13.   

    设备配置不一样,不等于同样的程序你和别人可以跑出一样的性能来。
    先不开Web服务,将里面的SQL语句都提出来单独跑一遍,看看内存情况。
    这个可以大致判断SQL Server内存是否够用,或者是哪个语句内存占用超多需要优化。
      

  14.   

    我对SQLERVER不熟悉大的版本都是2008的。不知道会不会有小版本。
      

  15.   

    是一个成型的WEB做二次开发。。就只是登录页进去都慢。大部分语句都是JAR包里~但是不会有啥语句能占用到3G内存吧数据库备份文件本身就3G左右大小。
      

  16.   

    成型产品,数据库和Web至少应该是分服务器的,服务器集群也不少见。
    带数据开发,不要说硬件配得更好点,至少要分机器吧。
      

  17.   

    sql server 占用内存是收到 最大服务器内存 参数的限制的。但只要你的数据库大小 超过了 内存的大小,那么sql server就会不断的缓存数据,我自己在台式机上也试过。8G内存,在没有限制时候,会占用到6G内存,确实会很卡,这个你已经做了限制了,但是不得不说 查询速度很快。最近用oracle,发现oracle的速度,明显没有 sql server的快,而且更加稳定,我估计应该是客户的dba把缓存内存设置的太低了,
    但是我们也没办法修改,没有权限。所以在内存中缓存数据时没有问题的。问题的关键可能在于,缓存的数据值不值,如果一大堆的全表扫描,缓存了一大堆的垃圾数据,那就不值了。如果是缓存了索引中的数据,也就是相对少量的数据,那么还是值得的
      

  18.   

    记得当年用 sql server 2000 的时候,也是装上去就把系统资源占光
    后来发现,是没打补丁
    难道 sql server 2008 也有这个问题?