易截截图软件、单文件、免安装、纯绿色、仅160KB

SQLSERVER大批量数据操作时所占用内存释...

现象:
现在做一个程序,对数据库的几个装有大量数据的表进行操作,对其中的一个表进行
循环操作,以处理其他的几个表。其中用到了几个query,update,当程序跑的过程中,
SQLSERVER的内存不断的增长,跑完后关闭程序退出后也不降下来。
解决:
这是SQL的内存管理机制决定的,SQL管理内存的原则是这样的,只要你的内存够用(这个够用是指你分配给SQL的可用内存),则SQL不会释放占用的内存,新的操作会分配新的内存,直到分配完可用的内存后,才会释放内存,因为内存占用会一直上涨,直到达到极限
解决的方法是限制给SQL的可用内存量
另外,对于频繁操作数据库的操作,不要每一次都去getConnection,然后再close,这样是很消耗内存的,sql server的内存会持续增长,即使每次都对connection做了close,sql server的内存还是会不停增长,虽然sql server会自动调节,不会让系统死掉,但是内存太少,做任何操作都会变的很慢了。可行的办法是,对于频繁的数据库操作,根据执行的类型,比如按select、update、insert来分类,在内存中建立staitc Connection,让这些频繁的操作,也就是说减少Connection的建立数量,这样就会大幅度的降低内存的消耗量,内存几乎不增长了,问题就解决了。  


相关文档:

SQLSERVER疑问

疑问:
1, sqlserver里面执行 xp_cmdshell
exec @error=xp_cmdshell 'cmdstr......'
返回值是什么值?dos命令的错误?什么样的错误可以扑捉到?
比如:
DECLARE @error int
EXEC @error=master.dbo.xp_cmdshell 'bcp CM_DWHSend.dbo.WK_CM_DWHSend_Master in  "D:\Sales\DWH_Onl\2010042_SENDMEMM.csv" -n -t, - ......

sqlServer中常见的日期格式

进来因为开发原因,经常需要使用日期方面的比较和操作,整理了一下这方面的资料,供大家共享:
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
例如:
select getdate()
2004-09-12 11:06:08.177
整理了一下SQL Server里面可能经常会用到的日期格式转换方法:
举例如下:
select CONVE ......

SqlServer 的几种分页方式


方式一:
select top 200 * from view_OrganResource
where  1=1 and OrganID = 57 and
(OrderID not in(select top 1000 OrderID from tb_OrganResource
where  1=1 and  OrganID = 57 order by uploadtime desc))
order by uploadtime desc --5858 1980
方式二:
select top 200 * from
vi ......

vc++ SQLServer添加操作实现

/*
*SQLServer添加操作实现
*/
void CMFCSQLDlg::OnButton2()
{
// TODO: Add your control notification handler code here
CString strsql;
CString strnum="mynum3";
CString strage="myage3";
HRESULT hResult;
_variant_t RecordsAffected;
CoInitialize(NULL);
_ConnectionPtr  m_pAppConn;
hResul ......

sqlServer,oracle中case关键字的用法

    在写SQL时,有时要根据已有的列值构造新的列值,这时就要用到的SQL中的case关键字。如下所示查询负责人信息表(T_MS_CustomerCrmInfoDutyPerson)中的是否是主要负责人(isMainDuty)字段,但是这个字段的值是以枚举的方式存储的,存储0表示是否,1表示是,否则表示未判断。这时直接查询出的值不是 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号