ldj/database/dba.sql

212 lines
14 KiB
MySQL
Raw Normal View History

2023-05-23 16:13:17 +08:00
<EFBFBD><EFBFBD>SELECT TOP 10
[session_id],
[request_id],
[start_time] AS '_<>Y<EFBFBD>e<EFBFBD><65>',
[status] AS '<00>r`',
[command] AS '}T<>N',
dest.[text] AS 'sql<00><><EFBFBD>S',
DB_NAME([database_id]) AS 'penc<6E>^ T',
[blocking_session_id] AS 'ck(W;<3B>^XvQ<76>N<4F>vO݋ID',
[wait_type] AS 'I{<7B>_D<5F><44>n{|<7C>W',
[wait_time] AS 'I{<7B>_<EFBFBD>e<EFBFBD><65>',
[wait_resource] AS 'I{<7B>_<EFBFBD>vD<76><44>n',
[reads] AS 'irt<><74>!kpe',
[writes] AS '<00>Q!kpe',
[logical_reads] AS ';<3B><><EFBFBD><EFBFBD><EFBFBD>!kpe',
[row_count] AS 'ԏ<>V<EFBFBD>~<7E>gL<67>pe'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50 AND DB_NAME(der.[database_id])='dwms4'
ORDER BY [cpu_time] DESC;
--(WSSMS̑ <EFBFBD><EFBFBD>b<EFBFBD>N<EFBFBD>e,g<h_>f:y<EFBFBD>~<EFBFBD>g
SELECT TOP 10
dest.[text] AS 'sql<00><><EFBFBD>S'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50
ORDER BY [cpu_time] DESC;
SELECT TOP 10
[session_id],
[request_id],
[start_time] AS '_<>Y<EFBFBD>e<EFBFBD><65>',
[status] AS '<00>r`',
[command] AS '}T<>N',
dest.[text] AS 'sql<00><><EFBFBD>S',
DB_NAME([database_id]) AS 'penc<6E>^ T',
[blocking_session_id] AS 'ck(W;<3B>^XvQ<76>N<4F>vO݋ID',
der.[wait_type] AS 'I{<7B>_D<5F><44>n{|<7C>W',
[wait_time] AS 'I{<7B>_<EFBFBD>e<EFBFBD><65>',
[wait_resource] AS 'I{<7B>_<EFBFBD>vD<76><44>n',
[dows].[waiting_tasks_count] AS 'S_MRck(WۏL<DB8F>I{<7B>_<EFBFBD>v<EFBFBD>N<EFBFBD>Rpe',
[reads] AS 'irt<><74>!kpe',
[writes] AS '<00>Q!kpe',
[logical_reads] AS ';<3B><><EFBFBD><EFBFBD><EFBFBD>!kpe',
[row_count] AS 'ԏ<>V<EFBFBD>~<7E>gL<67>pe'
FROM sys.[dm_exec_requests] AS der
INNER JOIN [sys].[dm_os_wait_stats] AS dows
ON der.[wait_type]=[dows].[wait_type]
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50
ORDER BY [cpu_time] DESC;
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset
END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
ORDER BY [avg_cpu_cost] DESC
;SELECT
DatabaseName = DB_NAME(database_id)
,[Number Indexes Missing] = count(*)
FROM sys.dm_db_missing_index_details
GROUP BY DB_NAME(database_id)
ORDER BY 2 DESC;
SELECT TOP 10
[Total Cost] = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0)
, avg_user_impact
, TableName = statement
, [EqualityUsage] = equality_columns
, [InequalityUsage] = inequality_columns
, [Include Cloumns] = included_columns
FROM sys.dm_db_missing_index_groups g
INNER JOIN sys.dm_db_missing_index_group_stats s
ON s.group_handle = g.index_group_handle
INNER JOIN sys.dm_db_missing_index_details d
ON d.index_handle = g.index_handle
ORDER BY [Total Cost] DESC;
USE master
GO
--<EFBFBD>Y<EFBFBD>g<EFBFBD><EFBFBD>c<EFBFBD>[penc<EFBFBD>^1\<EFBFBD>b<EFBFBD><EFBFBD>S<EFBFBD>c
SELECT * FROM sys.[sysprocesses] WHERE [spid]>50 --AND DB_NAME([dbid])='gposdb'
SELECT COUNT(*) FROM [sys].[dm_exec_sessions] WHERE [session_id]>50;
;
SELECT TOP 10
[session_id],
[request_id],
[start_time] AS '_<>Y<EFBFBD>e<EFBFBD><65>',
[status] AS '<00>r`',
[command] AS '}T<>N',
dest.[text] AS 'sql<00><><EFBFBD>S',
DB_NAME([database_id]) AS 'penc<6E>^ T',
[blocking_session_id] AS 'ck(W;<3B>^XvQ<76>N<4F>vO݋ID',
[wait_type] AS 'I{<7B>_D<5F><44>n{|<7C>W',
[wait_time] AS 'I{<7B>_<EFBFBD>e<EFBFBD><65>',
[wait_resource] AS 'I{<7B>_<EFBFBD>vD<76><44>n',
[reads] AS 'irt<><74>!kpe',
[writes] AS '<00>Q!kpe',
[logical_reads] AS ';<3B><><EFBFBD><EFBFBD><EFBFBD>!kpe',
[row_count] AS 'ԏ<>V<EFBFBD>~<7E>gL<67>pe'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY
sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id]>50 AND DB_NAME(der.[database_id])='dwms4'
ORDER BY [cpu_time] DESC
;
(@LOCATIONID nvarchar(9),@GOODTYPE int,@VOLTYPE int,@cnt int)
SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = 0 AND goodsType =@GOODTYPE AND LOC.VOLTYPE = @VOLTYPE
AND NOT EXISTS (SELECT 1 FROM T_WMSSTOCK WHERE LOCATIONID = LOC.LOCATIONID) AND LOCATIONID < @LOCATIONID ORDER BY LOC.layer,LOC.locationId DESC;
SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = 0 AND goodsType =@GOODTYPE AND LOC.VOLTYPE = @VOLTYPE
AND NOT EXISTS (SELECT 1 FROM T_WMSSTOCK WHERE LOCATIONID = LOC.LOCATIONID) AND LOCATIONID > @LOCATIONID ORDER BY LOC.layer,LOC.locationId ;
--<EFBFBD>g wCPUpe<EFBFBD>Tuser schedulerpe<EFBFBD>v
SELECT cpu_count,scheduler_count FROM sys.dm_os_sys_info
--<EFBFBD>g wg'Y<EFBFBD>]\O<>~ zpe
SELECT max_workers_count FROM sys.dm_os_sys_info<EFBFBD>
SELECT
scheduler_address,
scheduler_id,
cpu_id,
status,
current_tasks_count,
current_workers_count,active_workers_count
FROM sys.dm_os_schedulers;
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset
END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
ORDER BY [avg_cpu_cost] DESC;
SELECT
DatabaseName = DB_NAME(database_id)
,[Number Indexes Missing] = count(*)
FROM sys.dm_db_missing_index_details
GROUP BY DB_NAME(database_id)
ORDER BY 2 DESC;
SELECT TOP 10
[Total Cost] = ROUND(avg_total_user_cost * avg_user_impact * (user_seeks + user_scans),0)
, avg_user_impact
, TableName = statement
, [EqualityUsage] = equality_columns
, [InequalityUsage] = inequality_columns
, [Include Cloumns] = included_columns
FROM sys.dm_db_missing_index_groups g
INNER JOIN sys.dm_db_missing_index_group_stats s
ON s.group_handle = g.index_group_handle
INNER JOIN sys.dm_db_missing_index_details d
ON d.index_handle = g.index_handle
ORDER BY [Total Cost] DESC;
/*
avg_total_user_cost:<EFBFBD>Q\<EFBFBD>v(u7b<EFBFBD>gvs^GWb,g
avg_user_impact:7b<EFBFBD>g<EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>vs^GW~vR<EFBFBD>k6e<EFBFBD>v
user_scans:kb<EFBFBD>c!kpe
user_seeks:<EFBFBD>g~b!kpe0
equality_columns: <EFBFBD>T*NW[<EFBFBD>k:1Y<EFBFBD>N"}_(where Tb<54><62>v[{ <09>W[<5B>k)
included_columns:<EFBFBD>gv<EFBFBD>m<EFBFBD>vR<EFBFBD><EFBFBD>{USeg<EFBFBD><EFBFBD>1\/f select Tb<EFBFBD><EFBFBD>vW[<EFBFBD>k <EFBFBD>0
*/
SELECT avg_user_impact,
avg_total_user_cost,
avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
last_user_scan ,
[statement] AS [Object] ,
'CREATE INDEX [IDX_' + CONVERT(VARCHAR(32), GS.group_handle) + '_'
+ CONVERT(VARCHAR(32), D.index_handle) + '_'
+ REPLACE(REPLACE(REPLACE([STATEMENT], ']', ''), '[', ''), '.', '')
+ ']' + ' ON ' + [statement] + ' (' + ISNULL(equality_columns, '')
+ CASE WHEN equality_columns IS NOT NULL
AND inequality_columns IS NOT NULL THEN ','
ELSE ''
END + ISNULL(inequality_columns, '') + ')' + ISNULL(' INCLUDE ('
+ included_columns
+ ')', '') AS Create_Index_Syntax
FROM sys.dm_db_missing_index_groups AS G
INNER JOIN sys.dm_db_missing_index_group_stats AS GS ON G.index_group_handle = GS.group_handle
INNER JOIN sys.dm_db_missing_index_details AS D ON G.index_handle = D.index_handle
ORDER BY PossibleImprovement DESC ;