日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle spm使用1

發布時間:2024/8/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle spm使用1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
oracle11g new feature SPM
有助于保持sql的語句特性,僅僅同意運行性能提高的運行計劃。
它不同于stored outlines, spm在于穩定sql性能,而store outlines在于凍結sql運行計劃


事列
1.啟用optimizer_cature_sql_plan_baselines 捕獲sql語句
SQL> alter session set optimizer_capture_sql_plan_baselines = true;
Session altered.
SQL> select * from objs where object_id = 2;
no rows selected
SQL> select * from objs where object_id = 2;
no rows selected
SQL> alter session set optimizer_capture_sql_plan_baselines = false;
Session altered.
2.查詢dba_sql_plan_baselines,確定sql的spm狀態
SQL> select plan_name, sql_handle, enabled, accepted, fixed,
? 2 ? ? ? ? ? ? module, sql_text
? 3 ?from dba_sql_plan_baselines;
PLAN_NAME ? ? ? ? ? ? ? ? ? ? ?SQL_HANDLE ? ? ? ? ? ENABLED ? ACCEPTED ?FIXED ? ? MODULE ? ? ? ? ? ? ? SQL_TEXT
------------------------------ -------------------- --------- --------- --------- -------------------- --------------------------------------------------
SQL_PLAN_4pzq3z6xcqkpwd0984253 SQL_4afec3f9bacb4abc YES ? ? ? YES ? ? ? NO ? ? ? ?SQL*Plus ? ? ? ? ? ? select * from objs where object_id = 2
3.添加索引改變環境再執行sql
SQL> alter session set optimizer_capture_sql_plan_baselines = true;
Session altered.
SQL> select * from objs where object_id = 2;
no rows selected
SQL> select * from objs where object_id = 2;
no rows selected
SQL> alter session set optimizer_capture_sql_plan_baselines = false;
Session altered.
4.查詢dba_sql_plan_baselines
SQL> select plan_name, sql_handle, enabled, accepted, fixed, module, sql_text from dba_sql_plan_baselines;
PLAN_NAME ? ? ? ? ? ? ? ? ? ? ?SQL_HANDLE ? ? ? ? ? ENABLED ? ACCEPTED ?FIXED ? ? MODULE ? ? ? ? ? ? ? SQL_TEXT
------------------------------ -------------------- --------- --------- --------- -------------------- --------------------------------------------------
SQL_PLAN_4pzq3z6xcqkpwbe4c314c SQL_4afec3f9bacb4abc YES ? ? ? NO ? ? ? ?NO ? ? ? ?SQL*Plus ? ? ? ? ? ? select * from objs where object_id = 2
SQL_PLAN_4pzq3z6xcqkpwd0984253 SQL_4afec3f9bacb4abc YES ? ? ? YES ? ? ? NO ? ? ? ?SQL*Plus ? ? ? ? ? ? select * from objs where object_id = 2
SQL>
5.測試
SQL>
SQL> set autotrace on
SQL> select * from objs where object_id = 2;
no rows selected
Execution Plan
----------------------------------------------------------
Plan hash value: 954894094


--------------------------------------------------------------------------
| Id ?| Operation ? ? ? ? | Name | Rows ?| Bytes | Cost (%CPU)| Time ? ? |
--------------------------------------------------------------------------
| ? 0 | SELECT STATEMENT ?| ? ? ?| ? ? 1 | ? ?98 | ? 247 ? (1)| 00:00:03 |
|* ?1 | ?TABLE ACCESS FULL| OBJS | ? ? 1 | ? ?98 | ? 247 ? (1)| 00:00:03 |
--------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------


? ?1 - filter("OBJECT_ID"=2)


Note
-----
? ?- SQL plan baseline "SQL_PLAN_4pzq3z6xcqkpwd0984253" used for this statement




Statistics
----------------------------------------------------------
? ? ? ? 255 ?recursive calls
? ? ? ? ? 0 ?db block gets
? ? ? ?1044 ?consistent gets
? ? ? ? 879 ?physical reads
? ? ? ? ? 0 ?redo size
? ? ? ?1343 ?bytes sent via SQL*Net to client
? ? ? ? 513 ?bytes received via SQL*Net from client
? ? ? ? ? 1 ?SQL*Net roundtrips to/from client
? ? ? ? ?28 ?sorts (memory)
? ? ? ? ? 0 ?sorts (disk)
? ? ? ? ? 0 ?rows processed


SQL> alter session set optimizer_use_sql_plan_baselines = false;
Session altered.
SQL> select * from objs where object_id = 2;
no rows selected
Execution Plan
----------------------------------------------------------
Plan hash value: 613004408


-----------------------------------------------------------------------------------------------
| Id ?| Operation ? ? ? ? ? ? ? ? ? | Name ? ? ? ? ? ?| Rows ?| Bytes | Cost (%CPU)| Time ? ? |
-----------------------------------------------------------------------------------------------
| ? 0 | SELECT STATEMENT ? ? ? ? ? ?| ? ? ? ? ? ? ? ? | ? ? 1 | ? ?98 | ? ? 2 ? (0)| 00:00:01 |
| ? 1 | ?TABLE ACCESS BY INDEX ROWID| OBJS ? ? ? ? ? ?| ? ? 1 | ? ?98 | ? ? 2 ? (0)| 00:00:01 |
|* ?2 | ? INDEX RANGE SCAN ? ? ? ? ?| IDX_OBJSID_OBJS | ? ? 1 | ? ? ? | ? ? 1 ? (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------


? ?2 - access("OBJECT_ID"=2)




Statistics
----------------------------------------------------------
? ? ? ? ? 1 ?recursive calls
? ? ? ? ? 0 ?db block gets
? ? ? ? ? 2 ?consistent gets
? ? ? ? ? 4 ?physical reads
? ? ? ? ? 0 ?redo size
? ? ? ?1343 ?bytes sent via SQL*Net to client
? ? ? ? 513 ?bytes received via SQL*Net from client
? ? ? ? ? 1 ?SQL*Net roundtrips to/from client
? ? ? ? ? 0 ?sorts (memory)
? ? ? ? ? 0 ?sorts (disk)
? ? ? ? ? 0 ?rows processed




能夠看到當啟動optimizer_user_sql_plan_baselines時走索引應該是最優的卻沒有使用
plan_name accecpt 為 no 影響了走索引計劃









轉載于:https://www.cnblogs.com/jhcelue/p/6857249.html

總結

以上是生活随笔為你收集整理的oracle spm使用1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。