91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何得到給定SQL的 SQL_ID

發布時間:2020-08-11 00:37:10 來源:ITPUB博客 閱讀:159 作者:白盲丶 欄目:關系型數據庫
本文參考蓋國強老師的博文進行測試。
作者:eygle |English 【轉載時請標明出處和作者信息】|【恩墨學院 OCM培訓傳DBA成功之道】
鏈接:http://www.eygle.com/archives/2017/08/dbms_sqltune_util0_sqltext_to_sqlid.html
-------------------------------------------------------------------------------------------------------------------

  1. 在 Oracle 數據庫中,如何得到給定SQL的 SQL_ID ? 這是曾經被廣泛討論的一個問題。
  2. 現在,在Oracle 11g中,Oracle 給出了一個系統包,通過 dbms_sqltune_util0 可以簡便的計算出給定SQL的SQL_ID。

  3. SQL> desc dbms_sqltune_util0
  4. FUNCTION EXTRACT_BIND RETURNS SQL_BIND
  5.  Argument Name Type In/Out Default?
  6.  ------------------------------ ----------------------- ------ --------
  7.  BIND_DATA RAW IN
  8.  BIND_POS BINARY_INTEGER IN
  9. FUNCTION EXTRACT_BINDS RETURNS SQL_BIND_SET
  10.  Argument Name Type In/Out Default?
  11.  ------------------------------ ----------------------- ------ --------
  12.  BIND_DATA RAW IN
  13. FUNCTION GET_BINDS_COUNT RETURNS BINARY_INTEGER
  14.  Argument Name Type In/Out Default?
  15.  ------------------------------ ----------------------- ------ --------
  16.  BIND_DATA RAW IN
  17. FUNCTION IS_BIND_MASKED RETURNS NUMBER
  18.  Argument Name Type In/Out Default?
  19.  ------------------------------ ----------------------- ------ --------
  20.  BIND_POS BINARY_INTEGER IN
  21.  MASKED_BINDS_FLAG RAW IN DEFAULT
  22. FUNCTION SQLTEXT_TO_SIGNATURE RETURNS NUMBER
  23.  Argument Name Type In/Out Default?
  24.  ------------------------------ ----------------------- ------ --------
  25.  SQL_TEXT CLOB IN
  26.  FORCE_MATCH BINARY_INTEGER IN DEFAULT
  27. FUNCTION SQLTEXT_TO_SQLID RETURNS VARCHAR2
  28.  Argument Name Type In/Out Default?
  29.  ------------------------------ ----------------------- ------ --------
  30.  SQL_TEXT CLOB IN
  31. FUNCTION VALIDATE_SQLID RETURNS BINARY_INTEGER
  32.  Argument Name Type In/Out Default?
  33.  ------------------------------ ----------------------- ------ --------
  34.  SQL_ID VARCHAR2 IN

  35. 函數 sqltext_to_sqlid 用于實現這個功能,以下測試使用了一個簡單的SQL查詢。
  36. 注意Oracle在SQL最后加入一個 chr(0) 的不可見字符,我們需要補齊:

  37. SYS@ r7>SELECT DBMS_SQLTUNE_UTIL0.SQLTEXT_TO_SQLID('SELECT SYSDATE FROM DUAL'||CHR(0)) SQL_ID FROM DUAL;

  38. SQL_ID
  39. ----------------------------------------------------------------------------------------------------------------------------------------------------------------
  40. c749bc43qqfz3
  41. 接下來看一下執行這個查詢,數據庫中自動生成的SQL_ID,與通過函數轉換生成的完全一致:
  42. SYS@ r7>SELECT SYSDATE FROM DUAL;

  43. SYSDATE
  44. ---------
  45. 21-AUG-17

  46. SYS@ r7>SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='SELECT SYSDATE FROM DUAL';

  47. SQL_ID
  48. -------------
  49. c749bc43qqfz3

  50. 查看執行計劃
  51. SYS@ r7>select * from table(dbms_xplan.display_cursor('c749bc43qqfz3'));

  52. PLAN_TABLE_OUTPUT
  53. ----------------------------------------------------------------------------------------------------------------------------------------------------------------
  54. SQL_ID c749bc43qqfz3, child number 0
  55. -------------------------------------
  56. SELECT SYSDATE FROM DUAL
  57. Plan hash value: 1388734953

  58. -----------------------------------------------------------------
  59. | Id | Operation | Name | Rows | Cost (%CPU)| Time |
  60. -----------------------------------------------------------------
  61. | 0 | SELECT STATEMENT | | | 2 (100)| |
  62. | 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
  63. -----------------------------------------------------------------

  64. 13 rows selected.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保德县| 普定县| 潮安县| 白城市| 健康| 成都市| 望城县| 赤城县| 禄丰县| 周宁县| 科技| 吉林市| 凌云县| 阿拉善右旗| 海原县| 周宁县| 洛阳市| 茶陵县| 贡嘎县| 琼结县| 锦屏县| 金川县| 镇坪县| 黎平县| 皋兰县| 正宁县| 岳普湖县| 长治市| 天水市| 枣强县| 冀州市| 北京市| 霍城县| 岗巴县| 临邑县| 长白| 潮州市| 抚宁县| 巴中市| 开原市| 漳平市|