随笔分类 -  SQL Server 性能分析

摘要:这几天,公司测试压测从早上5:00--5:20 压测4万订单,测试活动期间,数据库的性能怎样, 开发早上起来发现,最近几天,更新库存的时间变慢的,是从6月10号开始的,就问从10号有做变更没有,我这边查数据库监控没问题! 但是在CAT的监控上,更新库存需要6秒以上: 后来和开发人员沟通,以前更新库存 阅读全文
posted @ 2019-07-03 14:20 zping 阅读(746) 评论(0) 推荐(0)
摘要:通过DMV查看当时SQL SERVER所有任务的状态(sleeping、runnable或running)2005、2008提供了以下三个视图工详细查询:DMV 用处Sys.dm_exec_requests 返回有关在SQL Server中执行的每个请求的信息,包括当前的等待状态Sys.dm_exe 阅读全文
posted @ 2019-06-20 18:43 zping 阅读(1674) 评论(0) 推荐(0)
摘要:资源等待类型 并行:CXPACKET Buffer:PAGEIOLATCH_X 非Buffer:LATCH_X I/O:ASYNC_IO_COMPITION;IO_COMPITION CPU:SOS_SCHEDULER_YIELD 日志:WRITELOG&LOGBUFFER 锁阻塞:LCK_* 内存 阅读全文
posted @ 2019-06-20 18:15 zping 阅读(1168) 评论(0) 推荐(0)
摘要:早上测试对性能压测,发现取sequence服务大量超时报错,查询线上的监控SQL: 大量这个查询,我在DeviceID和Isdelete上建有复合索引,应该很快,而且我测试了一下,取值,执行效率很高,不会出现慢的情况。 但是通过SQL Profile工具监控,发现这个sql,执行的CPU和IO都是很 阅读全文
posted @ 2019-06-19 19:01 zping 阅读(559) 评论(0) 推荐(0)
摘要:PCIE SSD * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 1474.351 MB/s 阅读全文
posted @ 2019-04-29 15:19 zping 阅读(720) 评论(0) 推荐(0)
摘要:昨天下午,测试反映trunk测试环境的数据库CPU一直100%,一开始以为是病毒,内网这段时间老是有个挖矿的病毒,查了一下被隔离了,但是数据库还是慢,停掉SQL server的服务CPU降下来,启动SSQL server的服务器就CPU就到100%,按照正常情况, SQL Server导致CPU爆高 阅读全文
posted @ 2019-02-19 16:01 zping 阅读(2298) 评论(2) 推荐(2)
摘要:每1分钟运行一次,记录正在运行的SQL,监控数据 放在ReportServer库的t_WhoIsActive表中,保留最近30天的数据! 阅读全文
posted @ 2019-01-04 17:56 zping 阅读(1136) 评论(0) 推荐(1)
摘要:从某个时间开始,Cat监控到的数据发现,正式环境的Insert 表很慢,数据库用了AlwasON高可用(1个备库做了实时同步),特别是每天早上9:00--11:00,做活动的时候,下单的insert需要1秒,有些有3秒的,而且是大量出现 很多简单的insert也有。从8月份就一直就有问题,严重影响业 阅读全文
posted @ 2018-12-12 20:03 zping 阅读(1540) 评论(0) 推荐(1)
摘要:当SQL Server的性能变差时,最可能发生的是以下两件事: 首先,某些查询产生了系统资源上很大的压力。这些查询影响整个系统的性能,因为服务器无法足够快速地服务其他SQL查询。 另外,开销较大的查询阻塞了其他请求相同数据库资源的查询,进一步降低了这些查询的性能。优化开销较大的查询不仅改进它们本身的 阅读全文
posted @ 2018-03-09 17:52 zping 阅读(820) 评论(0) 推荐(1)
摘要:性能计数器性能计数器在可见的将来(个人估计也有2020年之前)都是很重要的监控工具,并且依托强大的功能,可以进行性能分 析、警告发送等等,别大量DBA用于日常管理。关于数据库镜像,计数器主要集中在:SQLServer:Database Mirroring 对象中,下面列出一些常用的计数器:计数器名称... 阅读全文
posted @ 2015-06-12 16:55 zping 阅读(1136) 评论(0) 推荐(0)
摘要:--查看4小时内的CPU变化值,1分钟统计一次 --查看磁盘空间大小 阅读全文
posted @ 2013-11-15 16:48 zping 阅读(2772) 评论(1) 推荐(1)
摘要:文章来源:http://www.cnblogs.com/hongkongli/archive/2013/02/01/2889524.html在SQLServer2005之前,从不同的来源可以得到很多可用的脚本,来捕获哪些数据库进程产生阻塞以及哪些进程被阻塞。然而,这些脚本需要手工执行。sp_blocker就是一个实例。 然而,我们可以利用Sql Server Profiler ,来自动的捕获被阻塞的进程。要用Sql Server Profiler捕获这些进程,我们需要用到Sql Server Profiler 的Blocked Process Report事件。.Blocked Process 阅读全文
posted @ 2013-02-19 15:37 zping 阅读(2293) 评论(0) 推荐(0)
摘要:–查询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() –前10名其他等待类型 SELECT TOP 10 * from sys.dm_os_wait_stats ORDER BY wait_time_ms DESC SELECT *FROM sys.dm_os_wait_stats WHERE wait_type like ‘PAGELATCH%’ OR wait_type like ‘LAZYWRITER_SLEEP%’ –CPU的压力 SELECT scheduler_id, current 阅读全文
posted @ 2012-09-13 10:27 zping 阅读(4647) 评论(1) 推荐(1)
摘要:来源: http://www.cnblogs.com/fygh/archive/2012/03/12.html 数据库系统异常是DBA经常要面临的情景,一名有一定从业经验的DBA,都会有自己一套故障排查的方法和步骤,此文为为大家介绍一下通过系统 性能视图(SQLServer05以上版本)来排查系统异常的基本方法,希望能对大家有所帮助。 这里分两部分来介绍: 一. 从数据库连接情况来判断异常: 1. 首先我们来看一下目前数据库系统所有请求情况: --request infoselect s.session_id, s.status,db_name(r.database_id) as da... 阅读全文
posted @ 2012-03-16 17:23 zping 阅读(950) 评论(0) 推荐(1)
摘要:最近,数据库系统经常出现“ 消息[298] SQLServer Error: 10054, TCP Provider: 远程主机强迫关闭了一个现有的连接。 [SQLSTATE 08S01]” 一开始很迷惑,不知道原因,后来查询资料,发现max worker thread设置问题,由于前期max worker thread设置为255,连接过小,修改成0 阅读全文
posted @ 2011-12-05 16:29 zping 阅读(11240) 评论(2) 推荐(0)
摘要:批量导出索引: SELECT'CREATEINDEX'+[name]+'ON['+OBJECT_NAME(object_id)+']('+REVERSE(SUBSTRING(REVERSE((SELECTname+CASEWHENsc.is_descending_key=1THEN'DESC'ELSE'ASC'END+','FROMsys.index_columnsscJOINsys.columnscONsc.object_id=c.object_idANDsc.column_id=c.column 阅读全文
posted @ 2011-11-11 16:03 zping 阅读(1796) 评论(0) 推荐(0)
摘要:查看当前数据库锁定信息: declare@tbaTABLE(spidint,dbidINT,objectidINT,indldINT,TYPEVARCHAR(20),resourceVARCHAR(50),modeVARCHAR(20),statusVARCHAR(10))insertinto@tbaexecsp_lockselectspid,OBJECT_name(objectid)tab,TYPE,resource,mode,statusfrom@tbaWHEREdbid=DB_ID()andOBJECT_name(objectid)<>''ORDERBY2 阅读全文
posted @ 2011-10-12 14:27 zping 阅读(698) 评论(0) 推荐(0)
摘要:查询表的使用空间和可用空间 setnocountonexecsp_MSForEachTable@precommand=N'createtable##(idintidentity,表名sysname,字段数int,记录数int,保留空间varchar(20),使用空间varchar(20),索引使用空间varchar(20),未用空间varchar(20))',@command1=N'insert##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间)execsp_spaceused''?''update##set字段数=(sele 阅读全文
posted @ 2011-07-06 16:38 zping 阅读(880) 评论(0) 推荐(0)
摘要:通过SQL Profile跟踪SQL,并将跟踪的sql存入表中,运行下列语句就可以获取长事务的id,在EXCEL中通过TransactionID 筛选就可以得到事务的sql和运行时间。selectTransactionID[事务编号],count(*)[SQL条数],datediff(second,min(StartTime),max(EndTime))[事务时间S]fromyywhereTransactionIDisnotnullgroupbyTransactionIDorderby3 SQL执行等待间隔时间SELECTt.TransactionID事务ID,DATEDIFF(s,t.En. 阅读全文
posted @ 2011-03-31 15:37 zping 阅读(3903) 评论(0) 推荐(0)
摘要:View Code createVIEWview_job_infoasSELECTb.[name][Job名称],CASEWHENb.enabled=1THEN'启用'ELSE'禁用'END[是否启用],a.step_name[步骤名称],a.commandFROMmsdb.dbo.sysjobstepsaINNERJOINmsdb.dbo.sysjobsbONa.job_id=b.job_idSELECTb.*,OBJECT_NAME(object_id,database_id)存储过程名,d.cached_time编译时间,d.last_execution_ 阅读全文
posted @ 2011-02-24 17:48 zping 阅读(1054) 评论(0) 推荐(1)