1、查询阻塞信息、锁定了哪些资源
--1.查看阻塞信息 select spid,loginame,waitresource from master..sysprocesses where blocked <> 0 /* spid loginame waitresource 53 ggg-PC\Administrator RID:1:1:1385:0 */ --2.查看语句 dbcc inputbuffer(53) /* eventInfo select * from xx */ --3.查看锁的信息 exec sp_lock @spid1 = 53 /* spid dbid ObjId IndId Type Resource Mode Status 53 1 1335727861 0 PAG 1:1385 IS GRANT 53 1 1335727861 0 RID 1:1385:0 S WAIT 53 1 1335727861 0 TAB IS GRANT */ --select OBJECT_ID(1335727861) as table_name --4.打开数据库 select * from sysdatabases where dbid = 1 /* name dbid sid mode status status2 crdate reserved category cmptlevel filename version master 1 0x01 0 65544 1090520064 2003-04-08 09:13:36.390 1900-01-01 00:00:00.000 0 100 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master.mdf 661 */ --5.根据锁信息中的ObjId列:1335727861,找到了这个xx表 select * from sysobjects where id = 1335727861 /* name id xtype uid info status base_schema_ver replinfo parent_obj crdate ftcatid schema_ver stats_schema_ver type userstat sysstat indexdel refdate version deltrig instrig updtrig seltrig category cache xx 1335727861 U 1 0 0 0 0 0 2013-12-25 08:55:07.523 0 0 0 U 1 3 0 2013-12-25 08:55:07.523 0 0 0 0 0 0 0 */
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 0 then '失败' when 1 then '成功' when 2 then '重试' when 3 then '取消' when 4 then '正在进行' end as run_status from msdb.dbo.sysjobhistory h inner 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 数据库 go select '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' --物理文件所对应的逻辑名称,上面的语句就可以查询到 ALTER DATABASE 数据库名称 MODIFY FILE ( NAME = N'物理文件所对应的逻辑名称', FILEGROWTH = 10%)
5、查看数据库、表的创建日期和修改日期
select name, create_date --数据库创建日期 from sys.databases where name = 'pubs' --改成你自己的数据库名 select name, create_date, --表的创建日期 modify_date --表的修改日期 from sys.tables
6、页的分裂次数:
use master go select 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)
转载于:https://blog.51cto.com/yupeigu/1367972