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%’