oracle碎片的python跟踪,很直观

 

 

# -*- coding: utf-8 -*-
# -*- coding: gbk -*-
import sys
import cx_Oracle
import os
import numpy as np  
import matplotlib.pyplot as plt 
import math
#os.environ['NLS_LANG']='"SIMPLIFIED CHINESE_CHINA.ZHS16GBK"'
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
os.environ['PATH']='E:\instantclientwin32_jb51\instantclient_11_2;%path%'
os.environ['TNS_ADMIN']= 'E:\instantclientwin32_jb51\instantclient_11_2'
os.environ['ORACLE_BASE'] = 'E:\instantclientwin32_jb51\instantclient_11_2'
os.environ['ORACLE_HOME'] = 'E:\instantclientwin32_jb51\instantclient_11_2'
#os.environ['PATH']='.;%path%'
#os.environ['TNS_ADMIN']= '.'
#os.environ['ORACLE_BASE'] = '.'
#os.environ['ORACLE_HOME'] = '.'
c = ['silver','r','b','g'] 
plt.rcParams['font.sans-serif'] = ['SimHei']
#fig=plt.figure(figsize=(12,10))
#fig, ax = plt.subplots(1,1,figsize=(4,5))

conn=cx_Oracle.connect("system","","")
curs=conn.cursor()
sql="select segment_name,fs1,fs2,fs3,fs4  from lzjbsi.suipian where bz='严重100%'  and rownum<16 order by fs1+fs2+fs3+fs4 desc"
curs.execute(sql)
tablenames=[]
datas=[]
data=[]
for row_data in curs: # add table rows
	data=[]
	data.append(row_data[1])
	data.append(row_data[2])
	data.append(row_data[3])
	data.append(row_data[4])
	tablenames.append(row_data[0])
	datas.append(data)
	#print(tablenames)
	#print(data)
	#print(datas)

plt.style.use('seaborn')
engines = ['FS1', 'FS2', 'FS3', 'FS4']
colors = 'rgby'
#fig, axes = plt.subplots(ncols=len(tablenames))
lentable=len(tablenames)
fig, axes = plt.subplots(math.ceil(lentable/5),5,figsize=(12,8))

for kidx in range(math.ceil(lentable/5)):
	for kk in range(min((lentable-kidx*5),5)):
		#print(kidx,kk)
		ax1=axes[kidx][kk]
		idx = np.arange(len(datas[kk]))/2
		datasidx=kidx*5+kk
		n = 1
		width = 0.3
		print(kidx,kk,idx)
		for i in range(n):
			#print(i)
			ax1.bar(idx + i * width, datas[datasidx], width, color='b', alpha=0.5)
			xpos = idx + (i) * width
			ypos = datas[datasidx]
			for j in range(len(ypos)):
				ax1.text(xpos[j], ypos[j]/2, str(ypos[j]), ha='center', color='r', va='center', rotation=45)
			ax1.legend(engines)
			ax1.set_xticks(idx)
			#ax1.set_xlabel('FS(0-25)(25-50)(50-75)(75-100)')
			ax1.set_xticklabels(['FS1', 'FS2', 'FS3', 'FS4'], rotation=45, fontsize='small')
			ax1.set_ylabel('block(s)')
			ax1.set_title(tablenames[datasidx])

plt.tight_layout()
plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值