--查询语句
SUBSTRING(ST.text,
(QS.statement_start_offset / 2) + 1,
((CASE QS.statement_end_offset
WHEN -1 THEN
DATALENGTH(st.text)
ELSE
QS.statement_end_offset
END - QS.statement_start_offset) / 2) + 1) AS statement_text,
--执行文本
ST.text,
--执行计划
QS.total_worker_time,
QS.last_worker_time,
QS.max_worker_time,
QS.min_worker_time
FROM sys.dm_exec_query_stats QS
--关键字
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST
ORDER BY QS.creation_time DESC
SELECT TOP 1000
--创建时间
QS.creation_time,
--查询语句
SUBSTRING(ST.text,
(QS.statement_start_offset / 2) + 1,
((CASE QS.statement_end_offset
WHEN -1 THEN
DATALENGTH(st.text)
ELSE
QS.statement_end_offset
END - QS.statement_start_offset) / 2) + 1) AS statement_text,
--执行文本
--执行计划
QS.total_worker_time,
QS.last_worker_time,
QS.max_worker_time,
QS.min_worker_time
FROM sys.dm_exec_query_stats QS
--关键字
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST
ORDER BY QS.creation_time DESC
mysql 根据id递归查询树下的所有节点
比如查询表ms_region的一个分支下的所有子节点(查询父节点同理),可以用以下存储过程:
DELIMITER //
CREATE DEFINER=`root`@`%` FUNCTION `getMSRegionChildList`(rootId VARCHAR(1000)) RETURNS TEXT CHARSET utf8
DETERMINISTIC
BEGIN
DECLARE sTemp TEXT;
DECLARE sTempChd TEXT;
SET sTemp = '';
SET sTempChd = rootId;
WHILE sTempChd IS NOT NULL DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(id) INTO sTempChd FROM ms_region WHERE FIND_IN_SET(parent_id, sTempChd)>0;
END WHILE;
RETURN TRIM(LEADING ',' FROM sTemp);
END
//
DELIMITER ;