我有一個oracle-10046-aka。 SQLTRACE文件類似這樣的結構::如何在代碼未檢測到時將一組SQL執行分組?
Oracle Release 11.2
PARSING IN CURSOR #1 len=20 dep=0 uid=7 oct=6 lid=7 tim=2 hv=1 ad='1' sqlid='A'
insert
END OF STMT
PARSING IN CURSOR #2 len=20 dep=0 uid=7 oct=6 lid=7 tim=2 hv=2 ad='2' sqlid='r'
update next_step
END OF STMT
PARSING IN CURSOR #3 len=20 dep=0 uid=7 oct=6 lid=7 tim=2 hv=3 ad='3' sqlid='B'
update complete
END OF STMT
PARSING IN CURSOR #4 len=20 dep=0 uid=7 oct=3 lid=7 tim=2 hv=4 ad='4' sqlid='X'
select X
END OF STMT
PARSING IN CURSOR #5 len=20 dep=0 uid=7 oct=3 lid=7 tim=2 hv=5 ad='5' sqlid='Y'
select Y
END OF STMT
EXEC#1:c=1,e=1,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=100
EXEC#2:c=2,e=2,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=200
EXEC#3:c=4,e=4,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=300
EXEC#4:c=5,e=5,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=310
EXEC#5:c=6,e=6,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=320
EXEC#1:c=8,e=8,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=400
EXEC#2:c=16,e=16,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=416
EXEC#3:c=32,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=3,tim=448
我確定SQLID「A」作爲特定序列的開始,和SQLID「B」,因爲它的結束。在我的例子中,只有sqlid'r',但它可能更多,甚至不是相同的SQL或SQL序列。 像sqlid'X'和'Y'這樣的其他SQL不在我感興趣的序列中,因此應該可見。
我現在選擇的工具是來自Methodr的Method R Tools產品的mrskew。因爲它可以用Perl代碼擴展,所以我相信這可以完成,但是由於我對mrskew內部的理解,我的Perl技能有限。
我非常感謝這裏的任何提示或幫助。
謝謝傑夫,那正是我在找的東西。由於我的規範並不是100%清晰,所以我將所有修改視爲_exercise留給讀者_。 –