置百丈玄冰而崩裂,掷须臾池水而漂摇。
数据库

设置 SQL Server占用服务器内存

问题现象:

数据库服务器内存居高不下,64G的内存,几乎被占用100%,结果差点把服务器给拖垮了。


分析:

SQL Server对服务器内存的使用策略是有多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。

这些内存一般都是SQL Server运行时候用作缓存的:

1. 数据缓存:执行个查询语句,SQL Server会将相关的数据页(SQL Server操作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。 

强强 2023/1/29 0评论

数据库

[转载]SQL秘笈 : NOLOCK、ROWLOCK、UPDLOCK的使用!

NOLOCK的使用  
NOLOCK可以忽略锁,直接从数据库读取数据。这意味着可以避开锁,从而提高性能和扩展性。但同时也意味着代码出错的可能性存在。你可能会读取到运行事务正在处理的无须验证的未递交数据。 这种风险可以量化。
如果是金融方面的代码或者一些非常规的总计(你想绝对保证安全性),你应该小心行事并且不使用这种技术。但是我认为使用该技术会比你90%应用系统性能要好,当用户 (或者是交互代码发现一个未递交的修改时,使用该技术会保证不会像未使用该技术那样引起大麻烦。实际上,你可能发现你的大多数数据很少或者甚至不进行修改的,这样我们就不会因为这些数据被锁住而浪费大量的时间。  

强强 2022/11/8 0评论

数据库

MSSQL SERVER收缩日志文件

最近甲方那里数据库一个日志文件有了600多G,把数据库占满了,停了半个小时,好吓人。

下面介绍收缩日志的方法:

在简单模式下,进行收缩操作。

强强 2021/11/1 0评论

数据库

SQL SERVER 偶发执行SQL语句卡问题解决

SQL SERVER  偶发执行SQL语句卡问题解决

这两天客户那边操作系统,偶发非常卡,写代码追踪后发现是一个查询非常卡,但是表就只有十几条数据

处理方法:

一、查询锁表语句:

select   request_session_id   锁表进程,OBJECT_NAME(resource_associated_entity_id) 被锁表名 , * 
from   sys.dm_tran_locks where resource_type='OBJECT';

结果:

强强 2021/10/26 0评论

数据库

SQL SERVER 查看所有存储过程或视图里 包含某个关键字的查询语句

SELECT name, type_desc,text
FROM  sys.all_sql_modules s  JOIN sys.all_objects o ON s.object_id = o.object_id
WHERE  definition LIKE '%关键字%'ORDER BY type_desc, name;
SELECT name, xtype ,s.definition
FROM sysobjects o, syscomments s
WHERE o.id = s.id AND text LIKE '%agent%';
--查询所有包含某列名的对象
SELECT name, object_id,type, type_desc
FROM sys.objects
WHERE object_id IN (  SELECT object_id FROM sys.columns WHERE name = 'serverid' )


强强 2021/10/26 0评论