import heapq
def get_table_summary(dump_sql_path):
print("正在解析数据文件{0}".format(dump_sql_path))
file_handler = open(dump_sql_path)
file_line = file_handler.readline()
table_dict = dict()
while file_line:
if file_line.find("Table_map: ") > 0:
start_index = file_line.index("Table_map:") + len("Table_map: ")
end_index = file_line.index("mapped to", start_index)
table_name = file_line[start_index:end_index].strip()
if table_name in table_dict.keys():
table_dict[table_name] += 1
else:
table_dict[table_name] = 1
file_line = file_handler.readline()
print("##=============按照表访问排序====================##")
sorted_table_dict = sorted(table_dict.items(), key=lambda x: int(x[1]), reverse=True)
for item in sorted_table_dict:
print("{0}:{1}".format(item[0], item[1]))
print("##=============================================##")
def get_binlog_time_summary(dump_sql_path):
print("正在解析数据文件{0}".format(dump_sql_path))
file_handler = open(dump_sql_path)
file_line = file_handler.readline()
datetime_dict = dict()
while file_line:
if file_line.find("Table_map: ") > 0:
start_index = 1
end_index = file_line.index("server id", start_index)
current_time = file_line[start_index:end_index].strip()
if current_time in datetime_dict.keys():
datetime_dict[current_time] += 1
else:
datetime_dict[current_time] = 1
file_line = file_handler.readline()
print("##=============按照表时间访问排序====================##")
sorted_time_dict = sorted(datetime_dict.items(), key=lambda x: x[0], reverse=True)
for item in sorted_time_dict:
print("{0}:{1}".format(item[0], item[1]))
print("##=============================================##")
def get_exec_time_summary(dump_sql_path):
print("正在解析数据文件{0}".format(dump_sql_path))
file_handler = open(dump_sql_path)
file_line = file_handler.readline()
datetime_dict = dict()
while file_line:
if file_line.find("exec_time=") > 0:
start_index = 1
end_index = file_line.index("server id", start_index)
current_time = file_line[start_index:end_index].strip()
start_index = file_line.index("exec_time=") + len("exec_time=")
end_index = file_line.index("exec_time=", start_index)
exec_time = file_line[start_index:end_index].strip()
if current_time in datetime_dict.keys():
datetime_dict[current_time] += 1
else:
datetime_dict[current_time] = 1
file_line = file_handler.readline()
print("##=============按照表时间访问排序====================##")
sorted_time_dict = sorted(datetime_dict.items(), key=lambda x: x[0], reverse=True)
for item in sorted_time_dict:
print("{0}:{1}".format(item[0], item[1]))
print("##=============================================##")
if __name__ == '__main__':
sql_path = "d:\\006416_table.sql"
get_table_summary(dump_sql_path=sql_path)
get_binlog_time_summary(dump_sql_path=sql_path)