[20220119]超長sql語句補充3.txt
[20220119]超長sql語句補充3.txt
--//前幾天做了超長sql語句的探究,主要目的看看如何連線起來sql語句,寫的有點亂,今天做一個例子驗證自己的判斷.
1.環境:
SCOTT@book> @ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.建立指令碼:
$ cat bb.txt
select /* &&1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
....
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*/
* from dept where deptno=&&1;
$ ls -l bb.txt
-rw-r--r-- 1 oracle oinstall 34140 2022-01-18 17:04:07 bb.txt
3.測試:
SCOTT@book> @ bb.txt 10
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
--//執行多次.
SCOTT@book> @ hash
HASH_VALUE SQL_ID CHILD_NUMBER KGL_BUCKET PLAN_HASH_VALUE SQL_EXEC_START SQL_EXEC_ID
---------- ------------- ------------ ---------- --------------- ------------------- -----------
4181801068 g1zfa6gwn2f3c 0 79980 2852011669 2022-01-19 08:25:33 16777219
--//4181801068 = 0xf941386c
4.看看sql語句如何串在一起的:
SYS@book> @ sharepool/shp4 g1zfa6gwn2f3c
KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLHDIVC KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09
--------------------- ---------------- ---------------------------------------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ----------
child handle address 000000007CCFD5D0 select /* 10 xxxxxxxxxxxxxxxxxxxxxxxxxxx 1 0 0 000000007CB24BB8 000000007CEACD80 4528 12144 37168 53840 53840 4181801068 g1zfa6gwn2f3c 0
parent handle address 000000007CCFD5D0 select /* 10 xxxxxxxxxxxxxxxxxxxxxxxxxxx 1 0 0 000000007C5D1588 00 38817 0 0 38817 38817 4181801068 g1zfa6gwn2f3c 65535
*/
SELECT * FROM x$ksmsp WHERE TO_NUMBER ('000000007CCFD5D0', 'xxxxxxxxxxxxxxxx') between TO_NUMBER(KSMCHPTR, 'xxxxxxxxxxxxxxxx') and TO_NUMBER(KSMCHPTR, 'xxxxxxxxxxxxxxxx')+KSMCHSIZ-1
ADDR INDX INST_ID KSMCHIDX KSMCHDUR KSMCHCOM KSMCHPTR KSMCHSIZ KSMCHCLS KSMCHTYP KSMCHPAR
---------------- ---------- ---------- ---------- ---------- ---------------- ---------------- ---------- -------- ---------- ----------------
00007FB49343AA48 14197 1 1 1 KGLHD 000000007CCFD5A0 1120 recr 80 00
SYS@book> @ ttt
tracefile_identifier = /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_55737.trc
SYS@book> oradebug setmypid
Statement processed.
SYS@book> oradebug peek 0x000000007CCFD5D0 1120 1
[07CCFD5D0, 07CCFDA30) = 8044B900 00000000 8044B900 00000000 7CEAC6C0 00000000 7CCFD728 00000000 00010000 10012841 00000001 00000001 00010001 00000002 ...
--//檢視轉儲:
Dump of memory from 0x07CCFD5E4 to 0x07CCFDA30
07CCFD5E0 00000000 7CCFD728 00000000 [....(..|....]
07CCFD5F0 00010000 10012841 00000001 00000001 [....A(..........]
07CCFD600 00010001 00000002 00000000 00000004 [................]
07CCFD610 00010000 00000000 00000000 00000000 [................]
07CCFD620 7CCFD9D0 00000000 00000001 00000000 [...|............]
07CCFD630 7CCFD630 00000000 7CCFD630 00000000 [0..|....0..|....]
07CCFD640 7CCFD640 00000000 7CCFD640 00000000 [@..|....@..|....]
07CCFD650 7D60A9C8 00000000 7D60A9C8 00000000 [..`}......`}....]
07CCFD660 7CCFD660 00000000 7CCFD660 00000000 [`..|....`..|....]
07CCFD670 7CDC26C0 00000000 7CDC26C0 00000000 [.&.|.....&.|....]
07CCFD680 00000000 00000000 00000001 00000000 [................]
07CCFD690 F0FDCA33 00000000 0001386C 00000000 [3.......l8......]
07CCFD6A0 7CCFD710 00000000 7CCFD6A8 00000000 [...|.......|....]
07CCFD6B0 7CCFD6A8 00000000 7CCFD6B8 00000000 [...|.......|....]
07CCFD6C0 7CCFD6B8 00000000 00000000 00000000 [...|............]
07CCFD6D0 80640F68 00000000 00000000 00000000 [h.d.............]
07CCFD6E0 00000000 00000000 00000003 00000001 [................]
07CCFD6F0 00020002 00000000 00000001 00000000 [................]
07CCFD700 00000000 00000000 00000000 00000000 [................]
07CCFD710 00000000 00000000 00000025 00000000 [........%.......]
07CCFD720 F941386C 00000000 BBACAB7F 74523C42 [l8A.........B<Rt]
07CCFD730 F0FDCA33 F941386C 00000000 13017A78 [3...l8A.....xz..]
07CCFD740 001E1A09 00000000 00000000 00000000 [................]
07CCFD750 00000258 00000000 00000000 00000000 [X...............]
07CCFD760 7D0BA540 00000000 7CCFD778 00000000 [@..}....x..|....]
07CCFD770 F941386C 00000053 656C6573 2F207463 [l8A.S...select /]
07CCFD780 3031202A 7878780A 78787878 78787878 [* 10.xxxxxxxxxxx]
07CCFD790 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
...
07CCFD9D0 00000000 00000000 00000000 00000000 [................]
Repeat 2 times
07CCFDA00 00000271 80B38F00 7CCFD5A0 00000000 [q..........|....]
07CCFDA10 00000000 00000000 00000000 00000000 [................]
07CCFDA20 00000000 00000000 00000000 00080050 [............P...]
--//注意看sql語句開始前偏移24,16,8位元組內容.
07CCFD760 7D0BA540 00000000 7CCFD778 00000000 [@..}....x..|....]
07CCFD770 F941386C 00000053 656C6573 2F207463 [l8A.S...select /]
--//24位元組偏移 0x7D0BA540 對應下一個chunk的包含sql語句的其它部分.
--//16位元組偏移 0x7CCFD778 對應select的開始位置
--// 8位元組偏移 0xF941386C 對應sql語句的hash_value.
SYS@book> oradebug peek 0x7D0BA540 60
[07D0BA540, 07D0BA57C) = 7D07DA60 00000000 00000201 00000000 78787878 78787878 78787878 7878780A 78787878 78787878 78787878 78787878 78787878 78787878 78787878
--//78的ascii碼就是x.
--//注意看sql語句開始前偏移16,8位元組內容.
--//16位元組偏移 0x7D07DA60 對應下一個chunk的包含sql語句的其它部分.
--// 8位元組偏移 0x00000201 對應該chunk包含sql語句的長度.
SYS@book> oradebug peek 0x7D07DA60 60
[07D07DA60, 07D07DA9C) = 7D0BA9A0 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
--//78的ascii碼就是x.
--//注意看sql語句開始前偏移16,8位元組內容.
--//16位元組偏移 0x7D0BA9A0 對應下一個chunk的包含sql語句的其它部分.
--// 8位元組偏移 0x00000201 對應該chunk包含sql語句的長度.
SYS@book> oradebug peek 0x7D0BA9A0 60
[07D0BA9A0, 07D0BA9DC) = 7D609138 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D609138 60
[07D609138, 07D609174) = 7D31CC58 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D31CC58 60
[07D31CC58, 07D31CC94) = 7D090F38 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D090F38 60
[07D090F38, 07D090F74) = 7D7D3198 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D7D3198 60
[07D7D3198, 07D7D31D4) = 7CB36DC0 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 780A7878 78787878 78787878
SYS@book> oradebug peek 0x7CB36DC0 60
[07CB36DC0, 07CB36DFC) = 7DF66AB8 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78780A78 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7DF66AB8 60
[07DF66AB8, 07DF66AF4) = 7CB00A80 00000000 00000201 00000000 78787878 78787878 7878780A 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7CB00A80 60
[07CB00A80, 07CB00ABC) = 7D8BD520 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D8BD520 60
[07D8BD520, 07D8BD55C) = 7D8B9C60 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D8B9C60 60
[07D8B9C60, 07D8B9C9C) = 7C5FBA08 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C5FBA08 60
[07C5FBA08, 07C5FBA44) = 7C686460 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C686460 60
[07C686460, 07C68649C) = 7EA4D368 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 0A787878
SYS@book> oradebug peek 0x7EA4D368 60
[07EA4D368, 07EA4D3A4) = 7E109858 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 780A7878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E109858 60
[07E109858, 07E109894) = 7EA1AF18 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78780A78 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7EA1AF18 60
[07EA1AF18, 07EA1AF54) = 7CFE0228 00000000 00000201 00000000 78787878 7878780A 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7CFE0228 60
[07CFE0228, 07CFE0264) = 7CE390A8 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7CE390A8 60
[07CE390A8, 07CE390E4) = 7C23DCD0 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C23DCD0 60
[07C23DCD0, 07C23DD0C) = 7DDD7518 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7DDD7518 60
[07DDD7518, 07DDD7554) = 7D73D4E8 00000000 00000201 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D73D4E8 60
[07D73D4E8, 07D73D524) = 7DC8C388 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 0A787878 78787878
SYS@book> oradebug peek 0x7DC8C388 60
[07DC8C388, 07DC8C3C4) = 7E2DBB90 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E2DBB90 60
[07E2DBB90, 07E2DBBCC) = 7DF90218 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78780A78 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7DF90218 60
[07DF90218, 07DF90254) = 7D709C60 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D709C60 60
[07D709C60, 07D709C9C) = 7C480F40 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C480F40 60
[07C480F40, 07C480F7C) = 7CDB8768 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 780A7878 78787878 78787878
SYS@book> oradebug peek 0x7CDB8768 60
[07CDB8768, 07CDB87A4) = 7E2A5038 00000000 00000231 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E2A5038 60
[07E2A5038, 07E2A5074) = 7C6AA9D8 00000000 00000251 00000000 78787878 78787878 78787878 7878780A 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C6AA9D8 60
[07C6AA9D8, 07C6AAA14) = 7D311FB0 00000000 00000251 00000000 78787878 78787878 78787878 78787878 0A787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D311FB0 60
[07D311FB0, 07D311FEC) = 7CDF2FA8 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 780A7878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7CDF2FA8 60
[07CDF2FA8, 07CDF2FE4) = 7E2EC010 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78780A78 78787878 78787878
SYS@book> oradebug peek 0x7E2EC010 60
[07E2EC010, 07E2EC04C) = 7E3DA448 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 7878780A
SYS@book> oradebug peek 0x7E3DA448 60
[07E3DA448, 07E3DA484) = 7CF7A2B0 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E3DA448 60
[07CF7A2B0, 07CF7A2EC) = 7C70BF70 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C70BF70 60
[07C70BF70, 07C70BFAC) = 7E2CA980 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E2CA980 60
[07E2CA980, 07E2CA9BC) = 7D14CA18 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7D14CA18 60
[07D14CA18, 07D14CA54) = 7E1F8C88 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E1F8C88 60
[07E1F8C88, 07E1F8CC4) = 7C9410C0 00000000 00000251 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C9410C0 60
[07C9410C0, 07C9410FC) = 7C45CE30 00000000 00000431 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C45CE30 60
[07C45CE30, 07C45CE6C) = 7E1E9470 00000000 00000431 00000000 78787878 78787878 78787878 78787878 7878780A 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7E1E9470 60
[07E1E9470, 07E1E94AC) = 7C742850 00000000 00000431 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 0A787878
SYS@book> oradebug peek 0x7C742850 60
[07C742850, 07C74288C) = 7C5250A8 00000000 00000441 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7C5250A8 60
[07C5250A8, 07C5250E4) = 7BF23788 00000000 000011F1 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
SYS@book> oradebug peek 0x7BF23788 60
[07BF23788, 07BF237C4) = 00000000 00000000 00000D54 00000000 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878 78787878
--//注意看sql語句開始前偏移16,8位元組內容.
--//16位元組偏移 0x00000000 表示結束.
--// 8位元組偏移 0x00000D54 對應該chunk包含sql語句的長度.
--//算了一下總共46個chunk.注意8位元組偏移,開始0x00000201->0x00000231->0x00000251->0x00000431->0x00000441->0x000011F1->0x00000D54.
--//從這裡可以超長sql語句對共享池的影響.會使用大量的chunk,特別對於繁忙有沒有繫結變數的OLTP系統.
--//至於chunk大小如何分配,我估計先確定大的chunk,然後在使用小的chunk,剩下放在最後.
--//但是載入sql語句我估計從小開始.
--//算是對前面測試的一個總結吧.
5.補充累加sql長度看看是否能對上.
$ wc bb.txt
344 350 34140 bb.txt
--//將以上peek的結果儲存為1個檔案bb.txt,不包括第1個chunk.
$ grep "^\[" aa.txt | awk '{print strtonum("0x"$6)}'| paste -sd+ |bc
33536
--//看看第1個chunk:
*** 2022-01-19 08:28:41.195
Processing Oradebug command 'peek 0x000000007CCFD5D0 1120 1'
[07CCFD5D0, 07CCFDA30) = 8044B900 00000000 8044B900 00000000 7CEAC6C0 ...
Dump of memory from 0x07CCFD5E4 to 0x07CCFDA30
07CCFD5E0 00000000 7CCFD728 00000000 [....(..|....]
07CCFD5F0 00010000 10012841 00000001 00000001 [....A(..........]
07CCFD600 00010001 00000002 00000000 00000004 [................]
07CCFD610 00010000 00000000 00000000 00000000 [................]
07CCFD620 7CCFD9D0 00000000 00000001 00000000 [...|............]
07CCFD630 7CCFD630 00000000 7CCFD630 00000000 [0..|....0..|....]
07CCFD640 7CCFD640 00000000 7CCFD640 00000000 [@..|....@..|....]
07CCFD650 7D60A9C8 00000000 7D60A9C8 00000000 [..`}......`}....]
07CCFD660 7CCFD660 00000000 7CCFD660 00000000 [`..|....`..|....]
07CCFD670 7CDC26C0 00000000 7CDC26C0 00000000 [.&.|.....&.|....]
07CCFD680 00000000 00000000 00000001 00000000 [................]
07CCFD690 F0FDCA33 00000000 0001386C 00000000 [3.......l8......]
07CCFD6A0 7CCFD710 00000000 7CCFD6A8 00000000 [...|.......|....]
07CCFD6B0 7CCFD6A8 00000000 7CCFD6B8 00000000 [...|.......|....]
07CCFD6C0 7CCFD6B8 00000000 00000000 00000000 [...|............]
07CCFD6D0 80640F68 00000000 00000000 00000000 [h.d.............]
07CCFD6E0 00000000 00000000 00000003 00000001 [................]
07CCFD6F0 00020002 00000000 00000001 00000000 [................]
07CCFD700 00000000 00000000 00000000 00000000 [................]
07CCFD710 00000000 00000000 00000025 00000000 [........%.......]
07CCFD720 F941386C 00000000 BBACAB7F 74523C42 [l8A.........B<Rt]
07CCFD730 F0FDCA33 F941386C 00000000 13017A78 [3...l8A.....xz..]
07CCFD740 001E1A09 00000000 00000000 00000000 [................]
07CCFD750 00000258 00000000 00000000 00000000 [X...............]
~~~~~~~~
07CCFD760 7D0BA540 00000000 7CCFD778 00000000 [@..}....x..|....]
07CCFD770 F941386C 00000053 656C6573 2F207463 [l8A.S...select /]
07CCFD780 3031202A 7878780A 78787878 78787878 [* 10.xxxxxxxxxxx]
07CCFD790 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
07CCFD7E0 78787878 78787878 7878780A 78787878 [xxxxxxxx.xxxxxxx]
07CCFD7F0 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
07CCFD840 78787878 78787878 78787878 7878780A [xxxxxxxxxxxx.xxx]
07CCFD850 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 5 times
07CCFD8B0 7878780A 78787878 78787878 78787878 [.xxxxxxxxxxxxxxx]
07CCFD8C0 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
07CCFD910 78787878 7878780A 78787878 78787878 [xxxx.xxxxxxxxxxx]
07CCFD920 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
07CCFD970 78787878 78787878 7878780A 78787878 [xxxxxxxx.xxxxxxx]
07CCFD980 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
07CCFD9D0 00000000 00000000 00000000 00000000 [................]
Repeat 2 times
07CCFDA00 00000271 80B38F00 7CCFD5A0 00000000 [q..........|....]
07CCFDA10 00000000 00000000 00000000 00000000 [................]
07CCFDA20 00000000 00000000 00000000 00080050 [............P...]
--//0x7CCFD9D0-0x7CCFD778 = 600 , 600 = 0x258, 不知道是否下劃線內容(0x07CCFD750)對應sql語句長度.
--//600+33536 = 34136,差4個位元組.我前面使用&&1 ,使用10替換(測試時真不該寫入&&1),這樣少2個,加上結尾的分號以及\n不算正好4個.
--//但是結尾還是給加入\0.難道不算嗎?
--//轉儲最後1個chunk看看.
Processing Oradebug command 'peek 0x000000007BF23770 3472 1'
[07BF23770, 07BF24500) = 00000D91 00B38F00 7BF22770 00000000 0A996C98 ...
Dump of memory from 0x07BF23784 to 0x07BF24500
07BF23780 00000000 00000000 00000000 [............]
07BF23790 00000D54 00000000 78787878 78787878 [T.......xxxxxxxx]
07BF237A0 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 4 times
07BF237F0 7878780A 78787878 78787878 78787878 [.xxxxxxxxxxxxxxx]
...
07BF24480 78787878 78787878 78787878 78787878 [xxxxxxxxxxxxxxxx]
Repeat 3 times
07BF244C0 78787878 78787878 78787878 0A2F2A0A [xxxxxxxxxxxx.*/.]
07BF244D0 7266202A 64206D6F 20747065 72656877 [* from dept wher]
07BF244E0 65642065 6F6E7470 0030313D 00000000 [e deptno=10.....]
07BF244F0 00000000 00000000 00000000 00000000 [................]
--//0xD54 = 3412
--//0x7BF244EC-0x7BF23798 = 3412
--//包括\0,為什麼呢.
--//問題出在&&1後面有1個空格,生成sql語句時刪除了這個空格.這樣數量就正確了.
$ cat -e bb.txt | head -2
select /* &&1 $
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$
$ cp bb.txt cc.txt
--//適當編輯cc.txt
$ cat -e cc.txt | tee <(head -1) <(tail -1) | egrep "select|dept"
select /* 10$
* from dept where deptno=10;$
$ cat -e cc.txt | head -1 ; cat -e cc.txt | tail -1
select /* 10$
* from dept where deptno=10;$
$ cat -e cc.txt | egrep 'select|dept'
select /* 10$
* from dept where deptno=10;$
$ sql_idx.sh cc.txt 1
sql_text = select /* 10
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*/
* from dept where deptno=10\0
full_hash_value(16) = BBACAB7F74523C42F0FDCA33F941386C
hash_value(10) = 4181801068
sql_id(32) = g1zfa6gwn2f3c
sql_id(32) = g1zfa6gwn2f3c
sql_id(32) = g1zfa6gwn2f3c
--//與前面的sql_id能對上.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2852949/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20220120]超長sql語句補充4.txtSQL
- [20190329]探究sql語句相關mutexes補充2.txtSQLMutex
- [20220117]超長sql語句.txtSQL
- [20160215]超長sql語句與父子游標.txtSQL
- mysql sql語句執行超時設定MySql
- [20150803]無法通過sql_id找到sql語句3.txtSQL
- SQL語句SQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- [20210407]分析sql語句的共享記憶體段3.txtSQL記憶體
- [20200424]跟蹤特定sql語句以及v$open_cursor檢視(再補充).txtSQL
- [20200422]跟蹤特定sql語句以及v$open_cursor檢視(補充).txtSQL
- sql語句大全SQL
- 共享SQL語句SQL
- SQL語句整理SQL
- SQL基本語句SQL
- 精妙Sql語句SQL
- SQL語句集合SQL
- oracle sql語句OracleSQL
- sql語句 求救!SQL
- SQL精妙語句SQL
- SQL語句收集SQL
- 常用SQL語句SQL
- sql常用語句SQL
- 【SQL】10 SQL UPDATE 語句SQL
- 【SQL】11 SQL DELETE 語句SQLdelete
- Golang基礎語法補充Golang
- Linguistics-English-區分 that Vs. which + 定語(refine限定主句)從句 Vs. 同位語(expand擴充套件補充主句)從句NGUI套件
- 【SQL】9 SQL INSERT INTO 語句SQL
- 1.3. SQL 語句SQL
- Sql語句小整理SQL
- SQL語句優化SQL優化
- SQL SELECT 語句SQL
- SQL 語句學習SQL
- SQL語句IN的用法SQL
- Oracle基本SQL語句OracleSQL
- 重拾Sql語句SQL
- sql語句錯誤SQL
- SQL語句筆記SQL筆記