资源描述:
《db2查看正在执行sql语句》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、db2查看正在执行的sql语句db2查看正在执行的sql语句eventmonitor...看一下手册,好像叫systemmonitorguide?1.创建语句事件监测器db2“createeventmonitorsmevmforstatementswritetofile‘c:smevm’”其中smevm是监测器名称,c:smevm存放监测结果的路径,如不存在,请先创建。2.激活事件监测器db2“seteventmonitorsmevmstate=1”之后数据库会记录所有的语句执行状况,注意,激活事件监测器后数据库系统
2、的性能会受到影响,切记监测完成之后要关闭事件监测器。3.关闭事件监测器db2“seteventmonitorsmevmstate=0”4.监测结果输出db2evmon–dbsample–evmsmevm>smevm.out由于语句事件监测器输出结果是文本形式,在监测结果巨大的情况下,分析语句执行情况将变得比较困难,我的一位朋友(谢谢!)提供了一种方法,先将结果处理一下,然后把处理后的结果装入DB2的表中,用SQL语句分析,可很容易地得到,比如:执行时间最长的语句,语句的最长、最短、平均执行时间,不同语句的执行频度等等。/
3、************************************************************Programname:cvemv.cWrittenby:.......Date:2003.1.26Function:ConvertoutputofstatementseventmonitorTheresultcanbeloadedintoatableandforanalysis************************************************************/#d
4、efineKEYNUMBER23#include#includeintSearchText(char*str);intmain(intargc,char**argv){FILE*fp_in,*fp_out;charbuffer[32767];char*ptr="abc";inti;intsequence=0;char*oper="sadf";char*value="skdf";charrec[KEYNUMBER][32767];if(argc!=3){printf("Usage:cv
5、evminputoutput");exit(1);}fp_in=fopen(argv[1],"r");fp_out=fopen(argv[2],"w");if((fp_in==NULL)
6、
7、(fp_out==NULL)){printf("openfilefailure");exit(1);}while(!feof(fp_in)){fgets(buffer,sizeof(buffer),fp_in);if(feof(fp_in))break;ptr=strstr(buffer,"StatementEvent");i
8、f(ptr){sequence++;while(1){fgets(buffer,sizeof(buffer),fp_in);if(feof(fp_in))break;if(!strncmp(buffer,"sqlstate",11)){break;}oper=strtok(buffer,":");if(oper){i=SearchText(oper);if(i>0){value=strtok(NULL,":");if(value){value[strlen(value)-1]=0;strcpy(rec[i],value)
9、;}}}}fprintf(fp_out,"%d",sequence);for(i=0;i10、intf(fp_out,"");}}fclose(fp_in);fclose(fp_out);}intSearchText(char*str){char*opers[KEYNUMBER]={"ApplHandle","Type","Operation","Section","Creator","Package",