`
itspace
  • 浏览: 978865 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在有无柱状图的情况下cursor_sharing=similar,force对SQL执行计划的影响

阅读更多
在没有柱状图的情况下,cursor_sharing=similar和force的区别
SQL> conn zhou/zhou
Connected.

SQL> create table cursor_t as select * from sys.obj$;

Table created.

SQL> show parameter cursor

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing                       string      EXACT
cursor_space_for_time                boolean     FALSE
open_cursors                         integer     300
session_cached_cursors               integer     20
SQL> alter system set cursor_sharing=similar;

System altered.

SQL> show parameter cursor

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing                       string      SIMILAR
cursor_space_for_time                boolean     FALSE
open_cursors                         integer     300
session_cached_cursors               integer     20
SQL> select count(*) from cursor_t where obj#=100;

  COUNT(*)
----------
         1

SQL> select SQL_TEXT from v$sql where sql_text like 'select count(*) from cursor_t%';

SQL_TEXT
--------------------------------------------------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"

SQL> select count(*) from cursor_t where obj#=1000;

  COUNT(*)
----------
         1

SQL>  select SQL_TEXT from v$sql where sql_text like 'select count(*) from cursor_t%';

SQL_TEXT
--------------------------------------------------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"
select count(*) from cursor_t where obj#=:"SYS_B_0"

SQL> select SQL_TEXT,version_count from v$sqlarea where sql_text like 'select count(*) from cursor_t%';

SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT
-------------
select count(*) from cursor_t where obj#=:"SYS_B_0"
            2


SQL> alter system set cursor_sharing=force;

System altered.

SQL> alter system flush shared_pool;

System altered.

SQL> select SQL_TEXT from v$sql where sql_text like 'select count(*) from cursor_t%';

no rows selected

SQL> select count(*) from cursor_t where obj#=100;

  COUNT(*)
----------
         1

SQL> select SQL_TEXT from v$sql where sql_text like 'select count(*) from cursor_t%';

SQL_TEXT
--------------------------------------------------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"

SQL> select count(*) from cursor_t where obj#=1000;

  COUNT(*)
----------
         1

SQL> select SQL_TEXT from v$sql where sql_text like 'select count(*) from cursor_t%';

SQL_TEXT
--------------------------------------------------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"



SQL> select SQL_TEXT,version_count from v$sqlarea where sql_text like 'select count(*) from cursor_t%';

SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT
-------------
select count(*) from cursor_t where obj#=:"SYS_B_0"
            1
           
在有柱状图的情况下,cursor_sharing=smilar,force区别
          
SQL> conn zhou/zhou
Connected.
SQL> select count(*) from cursor_t;

  COUNT(*)
----------
     57348

SQL> update cursor_t set obj#=1000 where obj#>10;

57338 rows updated.

SQL> commit;

Commit complete.

SQL> create index cursor_t_idx on cursor_t(obj#);

Index created.

SQL>  alter system set cursor_sharing=exact;

System altered.


SQL> exec DBMS_STATS.GATHER_TABLE_STATS(ownname=>user,tabname=>'CURSOR_T',method_opt=>'FOR COLUMNS OBJ# SIZE AUTO',cascade=>TRUE);

PL/SQL procedure successfully completed.


SQL> alter system set session_cached_cursors =0 scope=spfile;

System altered.

SQL> conn /as sysdba
Connected.
SQL> startup force
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  2089400 bytes
Variable Size             633343560 bytes
Database Buffers          432013312 bytes
Redo Buffers                6295552 bytes
Database mounted.
Database opened.

SQL> alter system set cursor_sharing=similar;

System altered.

SQL> select count(*) from cursor_t where obj#=1000;

  COUNT(*)
----------
     57338

SQL>  select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374

SQL> select count(*) from cursor_t where obj#=1;

  COUNT(*)
----------
         1

SQL>  select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374
5gmt75b7sctf4            1      4056874985

SQL> select count(*) from cursor_t where obj#=2;

  COUNT(*)
----------
         1

SQL> select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374
5gmt75b7sctf4            1      4056874985
5gmt75b7sctf4            2      4056874985

SQL> select count(*) from cursor_t where obj#=3;

  COUNT(*)
----------
         1

SQL> select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374
5gmt75b7sctf4            1      4056874985
5gmt75b7sctf4            2      4056874985
5gmt75b7sctf4            3      4056874985

SQL> SELECT * FROM table(dbms_xplan.display_cursor('5gmt75b7sctf4',0));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  5gmt75b7sctf4, child number 0
-------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"

Plan hash value: 439480374

--------------------------------------------------------------------------------
------

| Id  | Operation             | Name         | Rows  | Bytes | Cost (%CPU)| Time
     |

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
------

|   0 | SELECT STATEMENT      |              |       |       |    27 (100)|
     |

|   1 |  SORT AGGREGATE       |              |     1 |     3 |            |
     |

|*  2 |   INDEX FAST FULL SCAN| CURSOR_T_IDX | 57334 |   167K|    27   (4)| 00:0

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
0:01 |

--------------------------------------------------------------------------------
------


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

   2 - filter("OBJ#"=:SYS_B_0)


19 rows selected.

SQL> SELECT * FROM table(dbms_xplan.display_cursor('5gmt75b7sctf4',1));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  5gmt75b7sctf4, child number 1
-------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"

Plan hash value: 4056874985

--------------------------------------------------------------------------------
--

| Id  | Operation         | Name         | Rows  | Bytes | Cost (%CPU)| Time
|

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
--

|   0 | SELECT STATEMENT  |              |       |       |     1 (100)|
|

|   1 |  SORT AGGREGATE   |              |     1 |     3 |            |
|

|*  2 |   INDEX RANGE SCAN| CURSOR_T_IDX |     5 |    15 |     1   (0)| 00:00:01

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|

--------------------------------------------------------------------------------
--


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

   2 - access("OBJ#"=:SYS_B_0)


19 rows selected.

SQL> SELECT * FROM table(dbms_xplan.display_cursor('5gmt75b7sctf4',2));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  5gmt75b7sctf4, child number 2
-------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"

Plan hash value: 4056874985

--------------------------------------------------------------------------------
--

| Id  | Operation         | Name         | Rows  | Bytes | Cost (%CPU)| Time
|

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
--

|   0 | SELECT STATEMENT  |              |       |       |     1 (100)|
|

|   1 |  SORT AGGREGATE   |              |     1 |     3 |            |
|

|*  2 |   INDEX RANGE SCAN| CURSOR_T_IDX |     5 |    15 |     1   (0)| 00:00:01

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|

--------------------------------------------------------------------------------
--


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

   2 - access("OBJ#"=:SYS_B_0)


19 rows selected.

SQL> SELECT * FROM table(dbms_xplan.display_cursor('5gmt75b7sctf4',3));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  5gmt75b7sctf4, child number 3
-------------------------------------
select count(*) from cursor_t where obj#=:"SYS_B_0"

Plan hash value: 4056874985

--------------------------------------------------------------------------------
--

| Id  | Operation         | Name         | Rows  | Bytes | Cost (%CPU)| Time
|

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
--

|   0 | SELECT STATEMENT  |              |       |       |     1 (100)|
|

|   1 |  SORT AGGREGATE   |              |     1 |     3 |            |
|

|*  2 |   INDEX RANGE SCAN| CURSOR_T_IDX |     5 |    15 |     1   (0)| 00:00:01

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|

--------------------------------------------------------------------------------
--


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

   2 - access("OBJ#"=:SYS_B_0)


19 rows selected.

SQL> alter system set cursor_sharing=force;                       

System altered.

SQL> alter system flush shared_pool;

System altered.

SQL> select count(*) from cursor_t where obj#=1000;

  COUNT(*)
----------
     57338

SQL> select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374

SQL> select count(*) from cursor_t where obj#=1;

  COUNT(*)
----------
         1

SQL> select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374

SQL> select count(*) from cursor_t where obj#=2;

  COUNT(*)
----------
         1

SQL>  select sql_id,CHILD_NUMBER,PLAN_HASH_VALUE from v$sql where sql_text like 'select count(*) from cursor_t%' order by LAST_ACTIVE_TIME;

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE
------------- ------------ ---------------
5gmt75b7sctf4            0       439480374
分享到:
评论

相关推荐

    柱状图V3_Labviewhistogram_labview.柱形图_labview柱状图_labview柱状图

    6. **应用领域**:柱状图在很多领域都有广泛的应用,如质量控制、科学研究、工程计算等,用于展示实验结果、比较不同条件下的数据差异、监控系统状态等。 7. **代码重用性**:自定义VI的一个重要优点是代码的重用性...

    渐变柱状图代码.rar_matlab柱状图_matlab渐变图_柱状图_渐变色_渐变色 matlab

    在MATLAB中,柱状图是一种常用的数据可视化工具,它能直观地展示各类别数据的大小。当柱状图结合渐变色时,可以更好地突出数据的差异和趋势,增加图表的美观性和可读性。本教程将详细介绍如何在MATLAB中创建具有渐变...

    柱状图_VB窗体显示柱状图_vb柱状图_柱状图mdb_柱状图_

    创建一个`ADODB.Recordset`对象,通过`Command`对象执行SQL查询,获取需要在柱状图中展示的数据。例如,你可能有一个名为"SalesData"的表,包含"Category"和"Amount"字段,你可以查询每个类别的总销售额。 3. **...

    用Delphi实现柱状图_delphi_delphi柱状图_delphi柱行图_delphi图形pudn_

    在本文中,我们将深入探讨如何使用Delphi编程语言来实现柱状图,这对于数据分析和可视化至关重要。Delphi,作为一个强大的Windows应用程序开发工具,提供了一系列组件和API,使得开发者能够轻松创建各种类型的图表,...

    GSM.rar_c++ 柱状图_钻孔_钻孔柱状图

    标题中的"GSM.rar_c++ 柱状图_钻孔_钻孔柱状图"表明这是一个使用C++编程语言开发的软件,主要用于生成钻孔柱状图。在地质学和矿业工程中,钻孔柱状图是一种常见的图表类型,用于记录和展示钻孔数据,如岩层深度、...

    matlab 柱状图填充代码

    默认情况下,MATLAB会创建一个无填充色的柱状图。为了填充颜色,可以使用`fill`函数或者`bar`函数的`FaceColor`属性: ```matlab bar(x, data, 'FaceColor', 'blue') % 使用蓝色填充柱状图 ``` 如果需要创建有图案...

    xy_bar_graph.zip_bar图_graph_labview 柱状图_labview柱状图_xy_bar_graph

    在LabVIEW编程环境中,XY Bar Graph是一种非常实用的可视化工具,尤其适合于展示数据的比较和分布情况。本文将深入探讨如何使用LabVIEW创建和应用XY Bar Graph,以及相关的编程技巧。 首先,XY Bar Graph与传统的...

    柱状图_companyyza_图形_

    2. `企业微信截图_156489745022(1).png` - 这可能是一个关于企业微信(一种企业级通讯工具)的屏幕截图,其中可能展示了柱状图在实际业务场景中的应用,比如汇报业绩、监控进度等。 3. `消除游戏.zip` 和 `贪吃蛇....

    基于Python月度销售额柱状图

    ### 基于Python月度销售额柱状图的知识点 #### Python PyEcharts模块简介 PyEcharts是一个用于生成ECharts图表的Python库。ECharts是百度开发的一个强大的、可高度定制化的图表库,它提供了丰富的图表类型以及交互...

    柱状图_饼状图_分析图_数据透析 经典模版

    本PPT中提供:图表模板38张 各种柱状图、饼状图、分析图、数据透析的模版,自己稍加更改即可用

    柱状图 柱状图 柱状图

    柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图

    柱状图V3.0-112,柱状图怎么做,LabView

    在LabVIEW中创建柱状图是一种常见的数据可视化方式,它可以帮助我们直观地理解一组数据的分布情况。柱状图V3.0-112.vi是一个LabVIEW程序,专门用于制作柱状图,适用于进行各种数据分析任务。下面将详细阐述如何在...

    33.ggplot2+ggparttern 条形图纹理图案填充加显著性标注教程.pdf

    在R语言中,创建引人注目的图形是数据分析和可视化过程中的重要环节。特别是对于条形图,有时候简单的颜色填充可能不足以突出数据的差异或模式。`ggplot2`库是一个强大的工具,它允许我们创建复杂的图形,而`...

    android可滑动柱状图

    在Android开发中,柱状图是一种常见的数据可视化方式,它能直观地展示各类数据的比较和分布情况。"android可滑动柱状图"是指在Android应用中实现的可以水平或垂直滑动的柱状图组件,这在展示大量数据时尤其有用,...

    C# 绘制统计图(柱状图, 折线图, 扇形图) - steven_2005 - 博客园

    C# 绘制统计图(柱状图, 折线图, 扇形图) - steven_2005 - 博客园

    WebChart结合sql数据库生成饼图和柱状图

    WebChart控件是ASP.NET中用于创建图表的一种工具,它允许开发者通过编程方式在网页上绘制各种复杂的图形,包括饼图和柱状图等。在本文中,我们将深入探讨如何利用WebChart结合SQL数据库在C# .NET 2005环境下生成这两...

    python中关于数据分析pyecharts柱状图知识详解(小白必看).pdf

    Pyecharts支持多种图形类型,包括折线图、柱状图、饼图、漏斗图、地图和极坐标图等。它的最新版本v1.7.1对Python3.6及以上版本提供了全面的支持,而较早的v0.5.X版本则已停止维护,不再适用于Python2.7和3.4以下的...

    imagestone.zip_C++ 图像柱状图_ImageStone_undo_图像 特效_图像处理库

    在图像处理中,柱状图分析可能用于统计图像的像素分布、颜色频率等信息,帮助用户理解和分析图像特征。 3. **ImageStone**: ImageStone的核心是一个图像处理引擎,它可以读取和写入多种图像文件格式,如JPEG、PNG、...

    柱状图的Demo_安卓源码.zip

    【标题】"柱状图的Demo_安卓源码.zip"是一个专门为Android平台设计的应用源码示例,它展示了如何在Android应用中实现柱状图的功能。这个Demo是开发者学习和理解如何在Android应用中集成柱状图图表的一个理想资源。 ...

    安卓柱状图、饼状图、折线图

    在安卓应用开发中,视觉数据的表现力至关重要,柱状图、饼状图和折线图是常见的图表类型,用于清晰地展示数据统计和分析结果。本文将深入探讨如何在安卓平台上利用各种库来实现这些图表。 一、柱状图(Bar Chart) ...

Global site tag (gtag.js) - Google Analytics