none
WIN2008R2 + SQL2005 拷贝大文件 会占满内存。 RRS feed

  • 问题

  • 数据库服务器WIN2008R2 + SQL2005 拷贝大文件10G 内存就会全部占满。

    导致数据库反应非常慢,从而影响系统使用。

    请问有什么解决办法?

    MAIL:740047122#QQ.COM

     

    • 已编辑 lzl7062 2011年2月23日 0:25
    2011年2月22日 8:16

答案

  • 指明SQL Server服務的最小內存為8GB,然後調整網卡中的一項服務,將文件共享服務的模式改為最大化網絡程序吞吐量,應該是可以解決問題的,因為SQL 默認的是最小內存=0,而文件共享服務的模式默認模式是最大化文件共享吞吐量,所有SQL的內存補擠出來了,所以你的SQL Server性能將會有較大的降低.
    • 已建议为答案 jiaohongtao 2011年2月25日 3:30
    • 已标记为答案 Ai-hua Qiu 2011年3月2日 3:17
    2011年2月25日 3:23

全部回复

  • 操作系统拷贝文件?

    不知道你如何拷贝文件,如果是服务器之间拷贝,建议使用ftp来完成。不要使用远程桌面的磁盘共享。


    family as water
    2011年2月22日 8:54
  • 数据库服务器WIN2008R2 + SQL2005 拷贝大文件10G 内存就会全部占满。

    导致数据库反应非常慢,从而影响系统使用。

    请问有什么解决办法?

    MAIL:740047122@QQ.COM

     


    数据库响应慢可能是因为SQLserver的内存page out了, 你可以检查一下当时的内存状况.

    如果是这种情况,你可以将sqlserver的启动账户添加lock page in memory权限,防止内存被踢出去.


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2011年2月22日 9:18
    版主
  • Don't run those kind of things on sql server.
    2011年2月22日 14:26
  • 数据库服务器WIN2008R2 + SQL2005 拷贝大文件10G 内存就会全部占满。

    导致数据库反应非常慢,从而影响系统使用。

    请问有什么解决办法?

    MAIL:740047122@QQ.COM

     


    数据库响应慢可能是因为SQLserver的内存page out了, 你可以检查一下当时的内存状况.

    如果是这种情况,你可以将sqlserver的启动账户添加lock page in memory权限,防止内存被踢出去.


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com


    sqlserver的启动账户已有lock page in memory权限。

    WIN2003下面很正常,没有一点事。

    如果我将内存扩大,如到16G或者32G,是否就能解决呢?

    2011年2月23日 0:24
  • sqlserver的max memory是否设置了上限?
    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2011年2月23日 1:27
    版主
  • 是把大文件存入SQL DB里么?

    建议利用2008 FILESTREAM特性,就没此内存占用问题,我实际测试过


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2011年2月23日 3:53
  • sqlserver的max memory是否设置了上限?
    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com


    是因为文件拷贝占用内存太大,SQL内存占用的太少,导致速度变慢。

    使用下面语句查询过。

    DBCC memorystatus
     --查询缓冲区池消耗的内存总量包括AWE
     
     SELECT
     SUM(multi_pages_kb+virtual_memory_committed_kb+shared_memory_committed_kb+
     awe_allocated_kb) AS [Used by BPool, kb]
     FROM sys.dm_os_memory_clerks WHERE type='MEMORYCLERK_SQLBUFFERPOOL'
     
     --确认那些内部组建窃取了缓冲区池中的大部分的页面
     
     SELECT TOP 10 type, SUM(single_pages_kb) AS stolen_mem_kb
     FROM sys.dm_os_memory_clerks
     GROUP BY type ORDER BY SUM(single_pages_kb) DESC
     
     --确认在缓冲区池外分配了内存的内部组建
     
     SELECT type, SUM(multi_pages_kb) AS memory_allocated_kb
     FROM sys.dm_os_memory_clerks
     WHERE multi_pages_kb!=0
     GROUP BY type

     

    2011年2月23日 4:02
  • What kind of file copy you did?
    2011年2月23日 14:02
  • 指明SQL Server服務的最小內存為8GB,然後調整網卡中的一項服務,將文件共享服務的模式改為最大化網絡程序吞吐量,應該是可以解決問題的,因為SQL 默認的是最小內存=0,而文件共享服務的模式默認模式是最大化文件共享吞吐量,所有SQL的內存補擠出來了,所以你的SQL Server性能將會有較大的降低.
    • 已建议为答案 jiaohongtao 2011年2月25日 3:30
    • 已标记为答案 Ai-hua Qiu 2011年3月2日 3:17
    2011年2月25日 3:23