hege 发表于 2018-10-15 07:18:05

SQL Server的日常监控语句

  1、查询阻塞信息、锁定了哪些资源
--1.查看阻塞信息 select spid,loginame,waitresource from master..sysprocesseswhere blocked0 /* spidloginamewaitresource 53ggg-PC\Administrator RID:1:1:1385:0 */--2.查看语句 dbcc inputbuffer(53) /* eventInfo select * from xx */--3.查看锁的信息 exec sp_lock @spid1 = 53 /* spiddbidObjIdIndIdTypeResourceModeStatus 53113357278610PAG1:1385                        ISGRANT 53113357278610RID1:1385:0                        SWAIT 53113357278610TAB                              ISGRANT */--select OBJECT_ID(1335727861) as table_name--4.打开数据库 select * from sysdatabases where dbid = 1 /* namedbidsidmodestatusstatus2crdatereservedcategorycmptlevelfilenameversion master10x0106554410905200642003-04-08 09:13:36.3901900-01-01 00:00:00.0000100C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master.mdf661 */--5.根据锁信息中的ObjId列:1335727861,找到了这个xx表 select * from sysobjects where>  2、如何用脚本获得sql server作业的执行情况
select j.name as job_name,                js.step_name,                h.run_date,      h.run_time,      h.run_duration,      h.server,                case run_status             when 0then '失败'             when 1then '成功'             when 2then '重试'             when 3then '取消'             when 4then '正在进行'      end as run_status            from msdb.dbo.sysjobhistory hinner join msdb.dbo.sysjobs j         on h.job_id = j.job_id          inner join msdb.dbo.sysjobsteps js         on js.job_id = h.job_id            and js.step_id = h.step_id     3、在sql server 中批量生成重组索引的语句
use 数据库 goselect 'DBCC INDEXDEFRAG('+db_name()+','+o.name+','+i.name + ');' --,db_name(), --o.name, --i.name, --i.*from sysindexes i inner join sysobjects o         on i.id = o.id where o.xtype = 'U'       and i.indid >0       and charindex('WA_Sys',i.name) = 0   4、primary文件组的磁盘,是否已经满了,如果满了,可以扩展文件
use master--你的数据库名称 go--看看你的primary组里的文件select ds.name,      df.physical_name,--主文件组的物理文件的路径                           --打开我的电脑,查看文件所在盘,是否磁盘已满                                 df.name,         --物理文件所对应的逻辑名称                              df.is_percent_growth, --是否自动增长      df.growth             --增长多少 from sys.data_spaces ds inner join sys.database_files df         on ds.data_space_id = df.data_space_id where ds.name = 'primary'   --物理文件所对应的逻辑名称,上面的语句就可以查询到>  5、查看数据库、表的创建日期和修改日期
select name,      create_date --数据库创建日期         from sys.databases where name = 'pubs'--改成你自己的数据库名   select name,      create_date,   --表的创建日期      modify_date    --表的修改日期         from sys.tables   6、页的分裂次数:
use master goselect leaf_allocation_count,   --由于页拆分所引起的页分配的累积计数      nonleaf_allocation_count,--叶级以上由页拆分引起的页分配的累积计数                leaf_page_merge_count,   --叶级页合并的累积计数      nonleaf_page_merge_count --叶级以上页合并的累积计数 from sys.dm_db_index_operational_stats( db_id('数据库名'),object_id('数据库名.dbo.表名'),索引id,null)

页: [1]
查看完整版本: SQL Server的日常监控语句