SQL Server 常用近百条SQL语句( 四 )

 
42. 查看当前最耗资源的10个SQL及其spid
SELECT TOP 10session_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 '等待的资源',reads AS '物理读次数',writes AS '写次数',logical_reads AS '逻辑读次数',row_count AS '返回结果行数'FROM sys.dm_exec_requests AS d_requestCROSS APPLYsys.dm_exec_sql_text(d_request.sql_handle) AS d_sqlWHERE session_id>50ORDER BY cpu_time DESC--前50号session_id一般是系统后台进程,sys.dm_exec_requests的status显示为background43. 查询某个存储过程被哪些job调用了
SELECT *FROM msdb.dbo.sysjobs JOB WITH( NOLOCK)INNER JOIN msdb. dbo.sysjobsteps STP WITH(NOLOCK )ON STP .job_id = JOB .job_idWHERE STP .command LIKE N'%sp_name%'--以上要查询某个job被哪个job调用了,把sp_name存储过程名字改成job_name作业名字即可 
44. 命令执行某个job
EXECUTE msdb.dbo.sp_start_job N'job_name' 
45. 查询某表标识列的列名
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='表名' AND COLUMNPROPERTY(OBJECT_ID('表名'),COLUMN_NAME,'IsIdentity')=1 
46. 获取标识列的种子值
SELECT IDENT_SEED ('表名')47. 获取标识列的递增量
SELECT IDENT_INCR('表名') 
48. 获取指定表中最后生成的标识值
SELECT IDENT_CURRENT('表名') 
49. 重新设置标识种子值为XX
DBCC CHECKIDENT (表名, RESEED, XX) 
50. 升级前,查询服务器名、实例名、版本号
select SERVERPROPERTY('machinename'),@@SERVERNAME,SERVERPROPERTY ('edition'),@@version 
51. 用户被grant这样操作赋予的权限
use dbname exec sp_helprotect @username = 'username'52. 授予某个用户执行某个数据库的sp的权限
use dbname grant execute to "username" 
53. always on
-查看集群各节点的信息,包含节点成员的名称,类型,状态,拥有的投票仲裁数SELECT * FROMsys.dm_hadr_cluster_members;-查看集群各节点的信息,包含节点成员的名称,节点成员上的sql实例名称select * from sys.dm_hadr_instance_node_map-查看WSFC(windows server故障转移群集)的信息,包含集群名称,仲裁类型,仲裁状态SELECT * FROM SYS.dm_hadr_cluster;-查看AG名称select * from sys.dm_hadr_name_id_map-查看集群各节点的子网信息,包含节点成员的名称,子网段,子网掩码SELECT * FROMsys.dm_hadr_cluster_networks;-查看侦听ipselect * from sys.availability_group_listeners;-查看主从各节点的状态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日志量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) 中的给定辅助数据库做的日志记录速率 / 秒 
54. 查询实例的FILESTREAM 使用的DIRECTORY_NAME
SELECTSERVERPROPERTY('FilestreamShareName') 
55. 查询FILETABLE表的数据库对应的DIRECTORY_NAME
select db_name(database_id),* from sys.database_filestream_options仅仅使用filestream功能时,数据库不需要对应的DIRECTORY_NAME 
56. 查询FILETABLE表对应的DIRECTORY_NAME


推荐阅读