20170330cursor_sharing=force改变显示宽度

[20170330]参数cursor_sharing=force改变显示宽度.txt

--//前几天遇到的问题,链接http://www.itpub.net/thread-2085766-1-1.html
--//开始以为是11.2.0.3特有的问题,下班后才知道这个问题可能来自参数cursor_sharing=force,实际上我扫描alert文件才发现是这个
--//问题.感谢zergduan的提醒,应该从参数之类入手检查.实际上当时看到这个修改马上明白这个问题(我前几天修改了这个参数全局有效
--//),以前有blog介绍.
--//alter system set cursor_sharing=force scope=memory;
--//测试说明问题:

1.环境:
SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.1.0.1.0     Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

SCOTT@test01p> select to_char(sysdate,'YYYY') from dual ;
TO_C
----
2017

2.如果修改参数:
SCOTT@test01p> alter session set cursor_sharing=force ;
Session altered.

SCOTT@test01p> select to_char(sysdate,'YYYY') from dual ;
TO_C
----
2017

SCOTT@test01p> Select to_char(sysdate,'YYYY') from dual ;
TO_CHAR(SYSDATE,'YYYY')
---------------------------------------------------------------------------
2017

--//前面第一次宽度没有改变,是因为光标已经缓存了,是软解析.
--//顺便修改一个字符s.可以发现宽度发生了改变.
SCOTT@test01p> @ dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  4mdjy1yx5tzxh, child number 0
-------------------------------------
Select to_char(sysdate,:"SYS_B_0") from dual
Plan hash value: 1388734953
------------------------------------------------------------------
| Id  | Operation        | Name | E-Rows | Cost (%CPU)| E-Time   |
------------------------------------------------------------------
|   0 | SELECT STATEMENT |      |        |     2 (100)|          |
|   1 |  FAST DUAL       |      |      1 |     2   (0)| 00:00:01 |
------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$1 / DUAL@SEL$1

--//在cursor_sharing=force 的情况下,语句转换成了Select to_char(sysdate,:"SYS_B_0") from dual.

SCOTT@test01p> select to_char(sysdate,'YYYY') from dual ;
TO_C
----
2017

SCOTT@test01p> @ dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  4t1qqsdgws3cr, child number 0
-------------------------------------
select to_char(sysdate,'YYYY') from dual
Plan hash value: 1388734953
------------------------------------------------------------------
| Id  | Operation        | Name | E-Rows | Cost (%CPU)| E-Time   |
------------------------------------------------------------------
|   0 | SELECT STATEMENT |      |        |     2 (100)|          |
|   1 |  FAST DUAL       |      |      1 |     2   (0)| 00:00:01 |
------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$1 / DUAL@SEL$1

--//因为前面执行1次,语句软解析,保持原样.

SCOTT@test01p> alter session set optimizer_index_cost_adj=1;
Session altered.

SCOTT@test01p> select to_char(sysdate,'YYYY') from dual ;
TO_C
----
2017

SCOTT@test01p> @ dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  4t1qqsdgws3cr, child number 1
-------------------------------------
select to_char(sysdate,'YYYY') from dual

Plan hash value: 1388734953

------------------------------------------------------------------
| Id  | Operation        | Name | E-Rows | Cost (%CPU)| E-Time   |
------------------------------------------------------------------
|   0 | SELECT STATEMENT |      |        |     2 (100)|          |
|   1 |  FAST DUAL       |      |      1 |     2   (0)| 00:00:01 |
------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$1 / DUAL@SEL$1

--//改变了一个参数optimizer_index_cost_adj,形成了子光标,但是一旦这个语句存在光标,oracle不会转换.

时间: 2024-09-02 12:13:47

20170330cursor_sharing=force改变显示宽度的相关文章

html表格table的宽度超出页面宽度时如何不改变table宽度(只显示出滚动条)?

问题描述 html表格table的宽度超出页面宽度时如何不改变table宽度(只显示出滚动条)? 问题如题.条件是不能将table的宽度设置为固定值,因为table包含的列数可能每次查询都不同,可能只有一二列,也可能有几十列,要求每一列宽度能够显示其表格的内容(即列的宽度按内容长度显示),如果table宽度没有超出页面宽度就不显示滚动条,也不拉伸表列宽度:如果table宽度超出页面宽度,就显示滚动条,而不压缩表列宽度. 解决方案 http://blog.sina.com.cn/s/blog_66

[20121023]改变show parameter的显示宽度.txt

[20121023]改变show parameter的显示宽度.txt 当登录sqlplus 执行: SQL> show parameter control_files NAME                                 TYPE                       VALUE ------------------------------------ -------------------------- -------------------------------

[20171106]修改show spparameter的显示宽度

[20171106]修改show spparameter的显示宽度.txt --//很多年前做的,修改show parameter的显示宽度. --//链接: [20121023]改变show parameter的显示宽度.txt=>http://blog.itpub.net/267265/viewspace-746988/ --//今天发现show spparameter显示宽度也不是很合理,修改看看,并做一个记录: 1.环境: SYS@book> @ &r/ver1 PORT_ST

jquery实现动态改变div宽度和高度

  这篇文章主要介绍了jquery实现动态改变div宽度和高度,效果非常不错,而且兼容性也很好,有需要的小伙伴可以参考下. 完整代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

排序-asp.net repeater 绑定数据后 怎么改变显示的顺序

问题描述 asp.net repeater 绑定数据后 怎么改变显示的顺序 <ul style=" margin-left:20px"> <asp:Repeater ID="rep_data" runat="server"> <ItemTemplate> <li ><p ><span><%# Eval("data").ToString()%>:

用CSS使图片自适应显示宽度

公司的项目中需要显示由用户提供URI链接的图片,可是预先无法获知图片的尺寸大小,如果图片尺寸过大将会影响页面布局.最理想的解决方案自然是自动生成缩略图,涉及的后台工作较为复杂,用CSS进行控制是一个可以接受的捷径. 如果用width属性强行设定显示尺寸似乎太不智能.幸好Firefox/Opera/IE7都提供了max-width属性支持.假定希望图片显示宽度不超过500像素,CSS可能如下: fit-image{ border :0; max-width:500px; } 让我痛恨的IE6不支持

CSS代码如何使图片自适应显示宽度

图片尺寸过大将会影响页面布局.最理想的解决方案自然是自动生成缩略图,涉及的后台工作较为复杂,用CSS进行控制是一个可以接受的捷径. 如果用width 属性强行设定显示尺寸似乎太不智能.幸好 Firefox/Opera/IE 7 都提供了 max-width 属性支持.假定希望图片显示宽度不超过500像素,CSS可能如下: 以下是引用片段: 以下是引用片段: fit-image { border : 0; max-width : 500px; } IE6 不支持 max-width 属性,但是利用

jquery实现动态改变div宽度和高度_jquery

完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery动态改变div宽度

Android的listview怎样动态改变显示的数量

问题描述 Android的listview怎样动态改变显示的数量 我做了一个简单的小程序,在一个界面上有一个按钮,然后点击按钮就增加一行listview,但是我 我的程序点击却没有反应,应该怎样解决,这是源代码 package com.example.dianjishiyan; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context