Oracle用v$sqlarea中一行保存同樣語(yǔ)句的SQL,并用字段version_count的值來(lái)指出子游標(biāo)的個(gè)
數(shù),而在v$sql里面為每個(gè)子游標(biāo)保留了一個(gè)單獨(dú)的行。兩個(gè)表可以通過(guò)字段address和hash_value
相互對(duì)應(yīng)。例如下面例子:
城步網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
SQL> select address,hash_value,sql_text,version_count
2 from v$sqlarea where sql_text like 'select value$ from sys.props%';
ADDRESS HASH_VALUE SQL_TEXT VERSION_COUNT
-------- ---------- ---------------------------------------------- -------------
97F1C9C4 563046721 select value$ from sys.props$ where name = :1 3
SQL> select address,hash_value,child_address,child_number,sql_text
2 from v$sql where sql_text like 'select value$ from sys.props%';
ADDRESS HASH_VALUE CHILD_ADDRESS CHILD_NUMBER SQL_TEXT
-------- ---------- ------------- ------------ ----------------------------------------------
97F1C9C4 563046721 97F1C448 0 select value$ from sys.props$ where name = :1
97F1C9C4 563046721 97EAD3B0 1 select value$ from sys.props$ where name = :1
97F1C9C4 563046721 97E7EEF0 2 select value$ from sys.props$ where name = :1
如果想找出這個(gè)SQL語(yǔ)句的執(zhí)行計(jì)劃,也可以通過(guò)字段address、hash_value和child_number到v$sql_plan中查找,
v$sql_plan中是區(qū)分了不同子游標(biāo)的執(zhí)行計(jì)劃的
SQL> select address,child_number,lpad('',2*level)||operation||decode(id,0,' cost='||position) op,
2 options,object_name
3 from v$sql_plan t where address='97F1C9C4' and hash_value=563046721;
ADDRESS CHILD_NUMBER OP OPTIONS OBJECT_NAME
-------- ------------ ------------------------- ----------- -------------
97F1C9C4 2 SELECT STATEMENT cost=0
97F1C9C4 2 TABLE ACCESS FULL PROPS$
97F1C9C4 1 SELECT STATEMENT cost=0
97F1C9C4 1 TABLE ACCESS FULL PROPS$
97F1C9C4 0 SELECT STATEMENT cost=0
97F1C9C4 0 TABLE ACCESS FULL PROPS$
視圖v$sqltext中沒(méi)有SQL語(yǔ)句的相關(guān)統(tǒng)計(jì)信息,但是v$sqltext用多行來(lái)保存sql語(yǔ)句,而v$sqlarea中只能
保存sql語(yǔ)句的前1000個(gè)字節(jié),所以如果sql語(yǔ)句大于1000個(gè)字節(jié),就要到v$sqltext中查看完整的語(yǔ)句,其字
段PIECE表示每個(gè)sql的行順序。