在sql server中惊醒dml *** 作可以建立插入或者更新的触发器:
update更新类型触发器
if (object_id('tgr_classes_update', 'TR') is not null)
drop trigger tgr_classes_update
go
create trigger tgr_classes_update
on classes
for update
as
declare @oldName varchar(20), @newName varchar(20)
--更新前的数据
select @oldName = name from deleted
if (exists (select * from student where name like '%'+ @oldName + '%'))
begin
--更新后的数据
select @newName = name from inserted
update student set name = replace(name, @oldName, @newName) where name like '%'+ @oldName + '%'
print '级联修改数据成功!'
end
else
print '无需修改student表!'
go
一般需要监控以下指标:1) SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。
2) 如果Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。
3) Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。
4) Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。
常规计数器收集 *** 作系统服务器的服务器性能信息,包括Processor、磁盘、网络、内存
Processor 处理器
1.1 % Processor Time指处理器用来执行非闲置线程时间的百分比。通过此计数器可以确定服务器当前CPU使用百分比。
1.2 % Privileged Time是在特权模式下进程线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。
PhysicalDisk物理磁盘(某个RAID)
2.1 Avg. Disk Queue Length等待请求的队列长度,若此值过大,说明磁盘存在瓶颈,自然磁盘延迟的值也会过大。
2.2 Avg. Disk sec/Read;Avg. Disk sec/Transfer;Avg. Disk sec/Write这三个计数器表示磁盘每次读写需要多少时间,表示磁盘的延迟情况,以秒为单位,若延迟超过25mm表示磁盘性能较差。
LogicalDisk逻辑磁盘(某个卷)
3.1 % Free Space某个磁盘的空闲百分比;Free Megabytes 磁盘剩余大小MB
3.2 Disk Read Bytes/sec;Disk Transfers/sec;Disk Write Bytes/sec这三个计数器表示每秒磁盘的读写情况,表示磁盘的IO性能(iops)
Memory 内存
4.1 Available Mbytes可以内存大小MB,此内存能立刻分配给一个进程或系统使用。它等于分配给待机(缓存的)、空闲和零分页列表内存的总和。
4.2 Cache Bytes 系统使用的内存
4.3 Commit Limit可以申请的内存总大小(虚拟内存和物理内存);Committed Bytes已经使用的内存大小(虚拟内存和物理内存);均是以Byte(字节)为单位。
4.4 Free System Page Table Entries指系统当前未使用的页表项数目。表示内存是否空闲。
4.5 Page Faults/sec 每秒出错页面的数量,也就是未在内存中命中的页面数。因此伴随着Pages/sec计数器是由于出错页面从磁盘读取数据页的速度。此值越大说明内存可能存在一定瓶颈,或者存在大量数据存取。
Network Interface 网络接口
5.1 Current Bandwidth指以位/每秒估计的网络接口的当前带宽。对于那些带宽不变的或无法估计出准确数据的界面,这个值为名义带宽。
5.2 Bytes Received/sec;Bytes Sent/sec;Bytes Total/sec每秒种发送和接收的字节数,表示当前网络的使用情况。
5.3 Output Queue Length输出数据包队列,此值大于2说明传输存在延迟。
5.4 Packets Outbound Discarded 被选为丢弃的数据包数目,丢弃的原因可能是释放缓冲空间。Packets Outbound Errors 由于错误不能传输的数据包数目
5.5 Packets Received Discarded 被选为丢弃的数据包数目,丢弃的原因可能是释放缓冲空间。Packets Received Errors 由于错误不能传输的数据包数目
SQL Server计数器
SQL Server中的Access Methods对象提供监视访问数据库中的逻辑数据的计数器;Buffer Manager计数器监视对磁盘上的数据库也的物理访问。
Access Methods 存取方式
Access Methods监视用于访问数据库中存储的数据的方法有助于确定是否可以通过添加或修改索引、添加或移动分区、添加文件或文件组、对索引进行碎片整理或者重写查询来提高查询性能。 Access Methods 计数器也可用于监视数据库中数据、索引和可用空间的数量,从而指示每个服务器实例的数据卷和碎片。索引的碎片过多会降低性能。
1.1 Page Splits/sec每秒由于索引页溢出而发生的页拆分数。此数据越大表示某表的修改频率较高,且要确认该索引是否适合建立该字段上。
1.2 Workfiles Created/sec每秒创建的工作文件数
1.3 Worktables Created/sec每秒创建的工作表数
Buffer Manager 缓存管理
监视用于存储数据页的内存;读取和写入数据库页时的物理io等,通过此对象可以判断是否存在物理内存瓶颈可以了解服务器的查询性能等等。
2.1 Buffer cache hit ratio命中高速缓冲区页的百分比。若此值过低说明可能内存存在一定瓶颈
2.2 Database pages缓冲池中数据库内容的页数
2.3 Page life expectancy页指示页面在没有引用的情况下,在此节点的缓冲池中停留的时间(以秒计)。此值若降低说明,服务器频繁查询数据库中数据。
2.4 Checkpoint pages/sec Checkpoint的执行频率,若执行的频率过高。则说明服务器过于频繁的修改数据。
2.5 Lazy writes/sec
若懒写入过于频繁,说明没有空闲的缓冲区供使用,内存可能存在一定瓶颈。“惰性编写器”是一个系统进程,用于成批刷新脏的过期的缓冲区(包含更改的缓冲
区,必须将这些更改写回磁盘,才能将缓冲区重用于其他页),并使它们可用于用户进程。
Memory Manager 内存管理
监视总体的服务器
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)