select*from sys.sysprocesses where blocked>0 或 SELECT t1.resource_type,db_name(t1.resource_database_id),t1.resource_associated_entity_id,t1.request_mode, t1.request_session_id,t2.blocking_session_id,t2.wait_duration_ms FROM sys.dm_tran_locks as t1 INNERJOIN sys.dm_os_waiting_tasks as t2 ON t1.lock_owner_address = t2.resource_address; 或 select A.SPID as 被阻塞进程,a.CMD AS 正在执行的操作,b.spid AS 阻塞进程号,b.cmd AS 阻塞进程正在执行的操作 from master..sysprocesses a,master..sysprocesses b where a.blocked<>0and a.blocked= b.spid 或 SELECT session_Id,spid,ecid,DB_NAME (sp.dbid),nt_username,er.status,wait_type, [Individual Query] =SUBSTRING (qt.text,er.statement_start_offset /2, ( CASE WHEN er.statement_end_offset =-1 THEN LEN (CONVERT (NVARCHAR (MAX), qt.text)) *2 ELSE er.statement_end_offset END - er.statement_start_offset) /2), qt.text,program_name,Hostname,nt_domain,start_time FROM sys.dm_exec_requests er INNERJOIN sys.sysprocesses sp ON er.session_id = sp.spid CROSS APPLY sys.dm_exec_sql_text (er.sql_handle) AS qt WHERE session_Id >50/* Ignore system spids.*/ AND sp.blocked>0AND session_Id NOTIN (@@SPID) 或 SELECT session_id ,status ,blocking_session_id ,wait_type ,wait_time ,wait_resource ,transaction_id FROM sys.dm_exec_requests WHERE status = N'suspended'; --sys.dm_exec_requests返回SQL Server 中正在执行的每个请求的信息
查看哪些表被锁了,以及这些表被哪个进程锁了
1 2
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'ORDERBY request_session_id ASC
查询某个job是否被堵塞
1 2 3
select*from msdb.dbo.sysjobs where name='jobname' select a.program_name,a.*from master..sysprocesses a where a.program_name like'%0D1CE57E8AC5%' --把第一个语句查询到的job_id代入第二个语句的program_name
检查SQL Agent是否开启
1 2 3 4 5 6 7 8
IF EXISTS ( SELECT TOP 11 FROM sys.sysprocesses WHERE program_name ='SQLAgent - Generic Refresher' ) SELECT'Running' ELSE SELECT'Not Running'
查看活动线程执行的sql语句,并生成批量杀掉的语句
1 2 3 4 5 6
select'KILL '+CAST(a.spid AS NVARCHAR(100)) AS KillCmd,REPLACE(hostname,' ','') as hostname ,replace(program_name,' ','') as program_name ,REPLACE(loginame, ' ', '') AS loginame, db_name(a.dbid) AS DBname,spid,blocked,waittime/1000as waittime ,a.status,Replace(b.text,'''','''') as sqlmessage,cpu from sys.sysprocesses as a with(nolock) cross apply sys.dm_exec_sql_text(sql_handle) as b where a.status<>'sleeping'AND a.spid<>@@SPID
查看备份进度
1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT DB_NAME(database_id) AS Exec_DB ,percent_complete ,CASEWHEN estimated_completion_time <36000000 THEN'0'ELSE''END+ RTRIM(estimated_completion_time/1000/3600) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%3600/60), 2) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%60), 2) AS [Time Remaining] ,b.text as tsql ,* FROM SYS.DM_EXEC_REQUESTS cross apply sys.dm_exec_sql_text(sql_handle) as b WHERE command LIKE'Backup%'--and database_id=db_id('cardorder') --OR command LIKE 'RESTORE%' ORDERBY2DESC
查看恢复进度
1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT DB_NAME(database_id) AS Exec_DB ,percent_complete ,CASEWHEN estimated_completion_time <36000000 THEN'0'ELSE''END+ RTRIM(estimated_completion_time/1000/3600) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%3600/60), 2) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%60), 2) AS [Time Remaining] ,b.text as tsql ,* FROM SYS.DM_EXEC_REQUESTS cross apply sys.dm_exec_sql_text(sql_handle) as b WHERE command LIKE'RESTORE%'--and database_id=db_id('cardorder') --OR command LIKE 'RESTORE%' ORDERBY2DESC
查看数据库的最近备份信息
1 2
SELECT database_name,type,MAX(backup_finish_date) AS backup_finish_date FROM msdb.dbo.backupset GROUPBY database_name,type ORDERBY database_name,type 备注:D 表示全备份,i 表示差异备份,L 表示日志备份
SELECT CONVERT(CHAR(100),SERVERPROPERTY('Servername'))AS Server, bs.database_name, bs.backup_start_date, bs.backup_finish_date, bs.expiration_date, CASE bs.type WHEN'D'THEN'Database' WHEN'L'THEN'Log' ENDAS backup_type, bs.backup_size, bmf.logical_device_name, bmf.physical_device_name, bs.name AS backupset_name, bs.description, 'RESTORE DATABASE ['+bs.database_name+'] FROM DISK=N''' +bmf.physical_device_name+'''WITH NORECOVERY;' FROM msdb.dbo.backupmediafamily bmf INNERJOIN msdb.dbo.backupset bs ON bmf.media_set_id=bs.media_set_id WHERE bs.backup_start_date>DATEADD(DAY,-1,GETDATE()) ORDERBY bs.backup_finish_date
查询XX库从YYYY-MM-DD日期开始的日志备份记录,并生成restore log的语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SELECT TOP 1000 S.database_name [Database], CASE [S].[type] WHEN'L' THEN N'RESTORE LOG '+ QUOTENAME(S.database_name) + N' FROM DISK = '''+ F.physical_device_name + N''' WITH NORECOVERY;' END [LogRestore], F.physical_device_name, S.[Type], S.backup_start_date, S.backup_finish_date FROM msdb.dbo.backupmediafamily F INNERJOIN msdb.dbo.backupset S ON S.media_set_id = F.media_set_id WHERE S.database_name ='XX'AND S.type ='L'AND S.backup_start_date >'YYYY-MM-DD'ORDERBY S.backup_start_date ASC
查询always on状态是否正常
1
select dc.database_name, d.synchronization_health_desc, d.synchronization_state_desc, d.database_state_desc from sys.dm_hadr_database_replica_states d join sys.availability_databases_cluster dc on d.group_database_id=dc.group_database_id and d.is_local=1
查看mirror镜像信息
1 2 3 4 5 6 7
SELECT db_name(database_id), mirroring_state_desc, mirroring_role_desc, mirroring_partner_name, mirroring_partner_instance FROM sys.database_mirroring
查询SSRS Report Subscriptions相关的job
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
SELECT b.name AS JobName , e.name , e.path , d.description , a.SubscriptionID , laststatus , eventtype , LastRunTime , date_created , date_modified FROM ReportServer.dbo.ReportSchedule a JOIN msdb.dbo.sysjobs b ONCONVERT(SYSNAME,a.ScheduleID) = b.name JOIN ReportServer.dbo.ReportSchedule c ON b.name =CONVERT(SYSNAME,c.ScheduleID) JOIN ReportServer.dbo.Subscriptions d ON c.SubscriptionID = d.SubscriptionID JOIN ReportServer.dbo.Catalog e ON d.report_oid = e.itemid WHERE e.name ='Report Name Goes Here'
SELECT db_name(database_id),*FROM master.sys.master_files WHERE database_id =DB_ID(N'DBA');
查看某个数据文件信息
1
select b.name,a.type_desc,a.name,a.physical_name,a.size,a.max_size,a.is_percent_growth,a.growth from sys.master_files a join sys.databases b on a.database_id=b.database_id and a.physical_name like'%DTSWonda_1%'
查询实例的数据文件总大小
1
SELECTsum(size*8/1024/1024) FROM master.sys.master_files
查询某个目录中数据库使用的总大小
1
SELECT a.size*8/1024/1024 ,a.*FROM master.sys.master_files a WHERE physical_name like'G:\DEFAULT.DATA%'
查询某个目录中哪些数据库占用了8G以上容量
1
SELECT b.name dbname,a.size*8/1024/1024 sum_GB,a.type_desc,a.name datafilename,a.physical_name FROM master.sys.master_files a join sys.sysdatabases b on a.database_id=b.dbid and a.physical_name like'G:\DEFAULT.DATA%'and a.size*8/1024/1024>8
查询实例上的每个数据库的大小
1 2 3 4 5 6 7 8 9 10 11
SELECT DB_NAME(db.database_id) DatabaseName, (CAST(mfrows.RowSize ASFLOAT)*8)/1024 RowSizeMB, (CAST(mflog.LogSize ASFLOAT)*8)/1024 LogSizeMB, (CAST(mfstream.StreamSize ASFLOAT)*8)/1024 StreamSizeMB, (CAST(mftext.TextIndexSize ASFLOAT)*8)/1024 TextIndexSizeMB FROM sys.databases db LEFTJOIN (SELECT database_id, SUM(size) RowSize FROM sys.master_files WHERE type =0GROUPBY database_id, type) mfrows ON mfrows.database_id = db.database_id LEFTJOIN (SELECT database_id, SUM(size) LogSize FROM sys.master_files WHERE type =1GROUPBY database_id, type) mflog ON mflog.database_id = db.database_id LEFTJOIN (SELECT database_id, SUM(size) StreamSize FROM sys.master_files WHERE type =2GROUPBY database_id, type) mfstream ON mfstream.database_id = db.database_id LEFTJOIN (SELECT database_id, SUM(size) TextIndexSize FROM sys.master_files WHERE type =4GROUPBY database_id, type) mftext ON mftext.database_id = db.database_id
查询总耗CPU最多的前3个SQL,且最近5天出现过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SELECT TOP 3 total_worker_time/1000AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time/qs.execution_count/1000AS [平均消耗CPU 时间(ms)], last_execution_time AS [最后一次执行时间],max_worker_time /1000AS [最大执行时间(ms)], SUBSTRING(qt.text,qs.statement_start_offset/2+1, (CASEWHEN qs.statement_end_offset =-1 THEN DATALENGTH(qt.text) ELSE qs.statement_end_offset END-qs.statement_start_offset)/2+1) AS [使用CPU的语法], qt.text [完整语法], qt.dbid, dbname=db_name(qt.dbid), qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName FROM sys.dm_exec_query_stats qs WITH(nolock) CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt WHERE execution_count>1and last_execution_time>dateadd(dd,-5,getdate()) ORDERBY total_worker_time DESC
查询平均耗CPU最多的前3个SQL,且最近5小时出现过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SELECT TOP 3 total_worker_time/1000AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time/qs.execution_count/1000AS [平均消耗CPU 时间(ms)], last_execution_time AS [最后一次执行时间],min_worker_time /1000AS [最小执行时间(ms)], max_worker_time /1000AS [最大执行时间(ms)], SUBSTRING(qt.text,qs.statement_start_offset/2+1, (CASEWHEN qs.statement_end_offset =-1 THEN DATALENGTH(qt.text) ELSE qs.statement_end_offset END-qs.statement_start_offset)/2+1) AS [使用CPU的语法], qt.text [完整语法], qt.dbid, dbname=db_name(qt.dbid), qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName FROM sys.dm_exec_query_stats qs WITH(nolock) CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt WHERE execution_count>1and last_execution_time>dateadd(hh,-5,getdate()) ORDERBY (qs.total_worker_time/qs.execution_count/1000) DESC
查看当前最耗资源的10个SQL及其spid
1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT TOP 10 session_id,request_id,start_time AS'开始时间',status AS'状态', command AS'命令',d_sql.text AS'sql语句', DB_NAME(database_id) AS'数据库名', blocking_session_id AS'正在阻塞其他会话的会话ID', wait_type AS'等待资源类型',wait_time AS'等待时间',wait_resource AS'等待的资源', readsAS'物理读次数',writes AS'写次数',logical_reads AS'逻辑读次数', row_count AS'返回结果行数' FROM sys.dm_exec_requests AS d_request CROSS APPLY sys.dm_exec_sql_text(d_request.sql_handle) AS d_sql WHERE session_id>50 ORDERBY cpu_time DESC --前50号session_id一般是系统后台进程,sys.dm_exec_requests的status显示为background
查询某个存储过程被哪些job调用了
1 2 3 4 5 6
SELECT* FROM msdb.dbo.sysjobs JOB WITH( NOLOCK) INNERJOIN msdb. dbo.sysjobsteps STP WITH(NOLOCK ) ON STP .job_id = JOB .job_id WHERE STP .command LIKE N'%sp_name%' --以上要查询某个job被哪个job调用了,把sp_name存储过程名字改成job_name作业名字即可
命令执行某个job
1
EXECUTE msdb.dbo.sp_start_job N'job_name'
查询某表标识列的列名
1
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='表名'AND COLUMNPROPERTY(OBJECT_ID('表名'),COLUMN_NAME,'IsIdentity')=1
use dbname exec sp_helprotect @username='username'
授予某个用户执行某个数据库的sp的权限
1 2
use dbname grantexecuteto "username"
always on
-查看集群各节点的信息,包含节点成员的名称,类型,状态,拥有的投票仲裁数
1
SELECT*FROM sys.dm_hadr_cluster_members;
-查看集群各节点的信息,包含节点成员的名称,节点成员上的sql实例名称
1
select*from sys.dm_hadr_instance_node_map
-查看WSFC(windows server故障转移群集)的信息,包含集群名称,仲裁类型,仲裁状态
1
SELECT*FROM SYS.dm_hadr_cluster;
-查看AG名称
1
select*from sys.dm_hadr_name_id_map
-查看集群各节点的子网信息,包含节点成员的名称,子网段,子网掩码
1
SELECT*FROM sys.dm_hadr_cluster_networks;
-查看侦听ip
1
select*from sys.availability_group_listeners;
-查看主从各节点的状态
1 2 3 4 5
select d.is_local,dc.database_name, d.synchronization_health_desc, d.synchronization_state_desc, d.database_state_desc from sys.dm_hadr_database_replica_states d join sys.availability_databases_cluster dc on d.group_database_id=dc.group_database_id;
-查看辅助副本(传说中的从库)延迟多少M日志量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
select db_name(database_id),log_send_queue_size/1024 delay_M,* from sys.dm_hadr_database_replica_states where is_primary_replica=0;
select ar.replica_server_name, db_name(drs.database_id),drs.truncation_lsn, drs.log_send_queue_size, drs.redo_queue_size from sys.dm_hadr_database_replica_states drs join sys.availability_replicas ar on drs.replica_id=ar.replica_id where drs.is_local=0;
select ar.replica_server_name, db_name(drs.database_id),drs.truncation_lsn, drs.log_send_queue_size,drs.log_send_rate, drs.redo_queue_size,drs.redo_rate from sys.dm_hadr_database_replica_states drs join sys.availability_replicas ar on drs.replica_id=ar.replica_id where drs.is_local=0 --log_send_queue_size 主数据库中尚未发送到辅助数据库的日志记录量 (KB) --log_send_rate 在最后一个活动期间,以千字节 (KB) 的平均主副本发送实例数据的速率/秒 --redo_queue_size 在最后一个活动期间,以千字节 (KB) 的平均主副本发送实例数据的速率/秒 --redo_rate 平均千字节 (KB) 中的给定辅助数据库做的日志记录速率 / 秒
select a.article,a.source_object,a.destination_object,b.colid from (select article,article_id,source_object,destination_object from [distribution].[dbo].MSarticles where publication_id in ( select publication_id from [distribution].[dbo].MSpublications where publication='XX' ) ) a innerjoin (select*from replicate1.dbo.sysarticlecolumns) b on a.article_id=b.artid orderby a.article
订阅数据库上执行
1
selectdistinct article from MSreplication_objects where publication='XX'
SELECT a.name index_name,c.name table_name,d.name column_name FROM sysindexes a JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid JOIN sysobjects c ON b.id=c.id JOIN syscolumns d ON b.id=d.id=AND b.colid=d.colid WHERE a.indid NOTIN(0,255) AND c.name in ('XX')
selectconvert(varchar(50), ps.name ) as partition_scheme, p.partition_number, convert(varchar(10), ds2.name ) as filegroup, convert(varchar(19), isnull(v.value, ''), 120) as range_boundary, str(p.rows, 9) asrows from sys.indexes i join sys.partition_schemes ps on i.data_space_id = ps.data_space_id join sys.destination_data_spaces dds on ps.data_space_id = dds.partition_scheme_id join sys.data_spaces ds2 on dds.data_space_id = ds2.data_space_id join sys.partitions p on dds.destination_id = p.partition_number and p.object_id = i.object_id and p.index_id = i.index_id join sys.partition_functions pf on ps.function_id = pf.function_id LEFTJOIN sys.Partition_Range_values v on pf.function_id = v.function_id and v.boundary_id = p.partition_number - pf.boundary_value_on_right WHERE i.object_id = object_id('crm.EmailLog') and i.index_id in (0, 1) orderby p.partition_number
查询分区函数
1
select*from sys.partition_functions
查看分区架构
1
select*from sys.partition_schemes
查询ssis包的信息
1
select*from msdb.dbo.sysssispackages
查询某张表里的索引的大小,如下示例表为dbo.table1
1 2 3 4 5 6 7 8 9
SELECT i.name AS IndexName, SUM(page_count *8) AS IndexSizeKB FROM sys.dm_db_index_physical_stats( db_id(), object_id('dbo.table1'), NULL, NULL, 'DETAILED') AS s JOIN sys.indexes AS i ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id GROUPBY i.name ORDERBY i.name
重建表上的所有索引
1
alter index allon table_name rebuild with (online=on)
重建表上的某个索引
1
alter index index_name on table_name rebuild with (online=on)
重新组织表上的所有索引
1
alter index allon table_name reorganize
重新组织表上的某个索引
1
alter index index_name on table_name reorganize
查看数据文件可收缩空间,结果见Availabesize_MB字段值
1 2 3
select name ,size*8/1024as Totalsize_MB ,CAST(FILEPROPERTY(name,'SpaceUsed') ASint)*8/1024as Usedsize_MB, size*8/1024-CAST(FILEPROPERTY(name, 'SpaceUsed') ASint)*8/1024AS Availabesize_MB from sys.master_files where database_id=db_id(N'DBNAME')
select@tableId= object_id from sys.objects where name =@tableName
SELECT OBJECT_NAME(IX.OBJECT_ID) Table_Name ,IX.name AS Index_Name ,IX.type_desc Index_Type ,SUM(PS.[used_page_count]) *8 IndexSizeKB ,IXUS.user_seeks AS NumOfSeeks ,IXUS.user_scans AS NumOfScans ,IXUS.user_lookups AS NumOfLookups ,IXUS.user_updates AS NumOfUpdates ,IXUS.last_user_seek AS LastSeek ,IXUS.last_user_scan AS LastScan ,IXUS.last_user_lookup AS LastLookup ,IXUS.last_user_update AS LastUpdate FROM sys.indexes IX INNERJOIN sys.dm_db_index_usage_stats IXUS ON IXUS.index_id = IX.index_id AND IXUS.OBJECT_ID = IX.OBJECT_ID INNERJOIN sys.dm_db_partition_stats PS on PS.object_id=IX.object_id WHERE OBJECTPROPERTY(IX.OBJECT_ID,'IsUserTable') =1 and IX.OBJECT_ID =@tableId GROUPBY OBJECT_NAME(IX.OBJECT_ID) ,IX.name ,IX.type_desc ,IXUS.user_seeks ,IXUS.user_scans ,IXUS.user_lookups,IXUS.user_updates ,IXUS.last_user_seek ,IXUS.last_user_scan ,IXUS.last_user_lookup ,IXUS.last_user_update
use XX if exists(select1from tempdb..sysobjects where id=object_id('tempdb..#tabName') and xtype='u') droptable #tabName go create table #tabName( table_name varchar(100), rowsNum varchar(100), reserved_size varchar(100), data_size varchar(100), index_size varchar(100), unused_size varchar(100) ) declare@namevarchar(100) declare cur cursorfor select name from sysobjects where xtype='u'orderby name open cur fetch next from cur into@name while @@fetch_status=0 begin insert into #tabName exec sp_spaceused @name fetch next from cur into@name end close cur deallocate cur
select top 10 table_name, data_size,rowsNum ,index_size,unused_size ,reserved_size,convert(int,SUBSTRING(data_size,0,LEN(data_size)-2)) size from #tabName ORDERBY size desc
或 select top 10 a.tablename,a.SCHEMANAME,sum(a.TotalSpaceMB) TotalSpaceMB,sum(a.RowCounts) RowCounts from ( SELECT t.NAME AS TableName, s.Name AS SchemaName, p.rows AS RowCounts, SUM(a.total_pages) *8AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) *8) /1024.00), 2) ASNUMERIC(36, 2)) AS TotalSpaceMB, SUM(a.used_pages) *8AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) *8) /1024.00), 2) ASNUMERIC(36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) -SUM(a.used_pages)) *8AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) -SUM(a.used_pages)) *8) /1024.00, 2) ASNUMERIC(36, 2)) AS UnusedSpaceMB FROM sys.tables t INNERJOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNERJOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNERJOIN sys.allocation_units a ON p.partition_id = a.container_id LEFTOUTERJOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.NAME NOTLIKE'dt%' AND t.is_ms_shipped =0 AND i.OBJECT_ID >255 GROUPBY t.Name, s.Name, p.Rows) a GROUPBY a.tablename,a.SCHEMANAME orderbysum(a.TotalSpaceMB) desc --这个比上一个专业
查询某个数据库中是否有create index ‘+name+ CHAR(10)
1 2 3
select'use '+name+CHAR(10) +'select DB_NAME(),OBJECT_NAME(OBJECT_ID),definition from '+name+'.sys.sql_modules WHERE objectproperty(OBJECT_ID, ''IsProcedure'') = 1 AND definition like ''%online%=%on%'' and definition like ''%index%'''from sys.databases;
根据id号查询某个数据库名
1
SELECT DB_NAME(18)
根据id号查询某个对象名
1
SELECT OBJECT_NAME(1769220894)
查看收缩的进度100%,此语句要到指定的数据库下执行
1 2 3 4 5 6 7 8 9 10 11 12
SELECT DB_NAME(database_id) AS Exec_DB ,percent_complete ,CASEWHEN estimated_completion_time <36000000 THEN'0'ELSE''END+ RTRIM(estimated_completion_time/1000/3600) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%3600/60), 2) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%60), 2) AS [Time Remaining] ,b.text as tsql ,* FROM SYS.DM_EXEC_REQUESTS cross apply sys.dm_exec_sql_text(sql_handle) as b WHERE command LIKE'DbccFilesCompact%'--and database_id=db_id('cardorder') ORDERBY2DESC
查看重新组织索引的100%进度
1 2 3 4 5 6 7 8 9 10 11 12
SELECT DB_NAME(database_id) AS Exec_DB ,percent_complete ,CASEWHEN estimated_completion_time <36000000 THEN'0'ELSE''END+ RTRIM(estimated_completion_time/1000/3600) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%3600/60), 2) +':'+RIGHT('0'+ RTRIM((estimated_completion_time/1000)%60), 2) AS [Time Remaining] ,b.text as tsql ,* FROM SYS.DM_EXEC_REQUESTS cross apply sys.dm_exec_sql_text(sql_handle) as b WHERE command LIKE'%REORGANIZE%'--and database_id=db_id('cardorder') ORDERBY2DESC