sql server 就是这样,他会根据你的内存动态增长,你可以在企业管理器里把他设置成固定大小,或设置动态增长的最大值

解决方案 »

  1.   

    SQL Server会根据内存的总量和自身的内存需求进行自动调整内存占用量,而且占用之后不会释放被占用掉的内存,除非你重新启动,因此内存占用多了并不是你的C#产生的问题不知道你的SQL Server是否是装在你的PC上,如果是在服务器上,你需要从SQL的服务器属性中配置操作系统的内存使用量,需要预留足够的内存给操作系统,具体的可以从帮助中查找配置方法
      

  2.   

    这样连接式更新。
    而且是每秒刷新一次。肯定很耗内存的。
    把连接声明成static的。
    还要记住m_connFasheji.Close();
    还要把m_cmdNet_Run_Current.Dispose();
      

  3.   

    好象sql server 2000的内存上从来不释放.
      

  4.   


    这样连接式更新。
    而且是每秒刷新一次。肯定很耗内存的。
    把连接声明成static的。
    还要记住m_connFasheji.Close();
    还要把m_cmdNet_Run_Current.Dispose();我这里的m_connFasheji是模块级的变量,从打开连接后就不关闭直到程序退出。
    因为不断的打开关闭链接会很耗费系统资源,而且占用时间。还要记住m_connFasheji.Close();
    还要把m_cmdNet_Run_Current.Dispose();
    这两个关闭,在程序退出时,我有关闭//打开数据库链接 ,初始化时调用一次
    m_strConnFasheji="Initial Catalog="+m_strFashejiName+";Data Source="+m_strDataSource+";Integrated Security=SSPI;";
    m_connFasheji=new SqlConnection (m_strConnFasheji);
    m_connFasheji.Open ();m_cmdNet_Run_Current=new SqlCommand ();
    m_cmdNet_Run_Current.CommandType =CommandType.Text ;
    m_cmdNet_Run_Current.Connection =m_connFasheji;
      

  5.   

    我是这样声明的。
    private string     m_strConnFasheji;
    private SqlConnection m_connFasheji;
    private SqlCommand     m_cmdRun_Current;
      

  6.   

    使用以下方法后基本解决问题,一直都没有碰到自动关机,或丢操作系统的问题。
    SQL Server会根据内存的总量和自身的内存需求进行自动调整内存占用量,而且占用之后不会释放被占用掉的内存,除非你重新启动,因此内存占用多了并不是你的C#产生的问题不知道你的SQL Server是否是装在你的PC上,如果是在服务器上,你需要从SQL的服务器属性中配置操作系统的内存使用量,需要预留足够的内存给操作系统,具体的可以从帮助中查找配置方法感谢