sql serverx统计分析通过收集sql profiler,将性能数据导入表(或收集时直接存入表),然后即可方便做各维护的整体效率分析。但sql默认开户慢日志是存入日志文件,由于各种原因日志文件无法取出。在查看其他资料时,无意看到也可以直接将慢日志存入表,因此测试及试验了一把,通过下面步骤,可达到像sql server一样做整体的数据库效率分析。
—1.将慢日志修改为记录到表中。方便分析(日志文件还得找专门工具,麻烦)
show variables like ‘slowquery_log’
set global slow_query_log=1
show variables like ‘log_output’ —默认是FILE。
set global log_output=‘TABLE’ —修改为存在表中:mysql.slowlog
—2.先不记录不用索引的sql。
show variables like ‘%log_queries_not_using_indexes%’
set global log_queries_not_using_indexes = 0
—3.修改时间阀值,建议由10秒优化为1秒或2秒。
show variables like ‘long_query_time’
set global long_query_time = 2
—4.根据表做各种维度分析
select * from mysql.slow_log
select * from mysql.slow_log where query_time > 10
select * from mysql.slow_log where sql_text like ‘%imp_iot_alarm_logszg%’
—5.按sql前100个字符相同做统计分析
SELECT SUBSTRING(sql_text,1,100),COUNT(*) AS COUNT,SUM(query_time) AS ‘秒’ From
mysql.slow_log
GROUP BY SUBSTRING(sql_text,1,100)
ORDER BY SUM(query_time) DESC
select * from mysql.slow_log where sql_text like ‘%imp_iot_alarm_logszg%’