我爱Aspx >> C#.Net >> 用共享游标提升 SQL 性能动态视图
下面的四个动态视图显示了绑定变量的信息:
l GV$SQL_BIND_METADATA
l V$SQL_BIND_METADATA
l GV$SQL_BIND_DATA
l V$SQL_BIND_DATA
这些视图也包括了内部绑定变量的信息。内部绑定变量可以根据视图[G]V$SQL_BIND_DATA中的字段SHARED_FLAG2与用户绑定变量区分,内部绑定变量的标记值为256。
只参看内部绑定变量的行,用户可以考虑下面的语句:
SELECT * FROM V$SQL_BIND_DATA WHERE BITAND (SHARED_FLAG2, 256) =256
主要利益与折衷
考虑一个没有使用绑定变量的应用,该应用重复地使用相似语句,大多数的执行都将导致硬解析。
一个不使用绑定变量的典型应用可能会有各种类型的语句:最优共享,非最优共享安和非共享。对于最优共享语句,共享游标明显是有好处;非共享语句不能共享同样的游标。
对于非最优共享语句没有一个简单的答案:共享游标与获取最优计划的比较是硬解析的系统耗费与强制使用相同执行计划后的性能退化之间的折衷。因此,根据系统负载,应用特征,资源限制等,正确的答案是不同的。这也是Oracle 提供为cursor_sharing提供两个不同的值SIMILAR和FORCE,并把决定权留给用户的原因。SIMILAR是更保守的选择,它仅仅使最优可共享语句共享游标。采用FORCE,最优共享和非最优共享语句都被强制共享游标,结果便不可预测,因为游标可能被共享但执行计划的性能也降低了。因此,因为硬解析造成性能有非常大的影响并且非最优共享语句占非常大的百分比的情况下,使用FORCE是有意义的。另外一个考虑的方式是:在采用FORCE之前先尝试SIMILAR。
当cursor_sharing采用相似语句共享游标的时候,硬解析转换为软解析。注意,由于判断语句相似性的附加成本,软解析比已使用绑定变量的应用的软解析(用绑定变量在内部替换文字标量)花费要昂贵一些。但是,完全保存在CPU内部,内存和锁竞争任然需要考虑。
Ҷƪл˵?
SQL Server 2005 创建登录时提示..[07-30]
Mysql关于数据库和表的几个最基本..[07-30]
成批更改sql server数据库所有者..[07-30]
一个非常简单的分页技术MYSQL+JS..[07-30]
VFP中用SPT访问SQL Server数据库[07-30]
动态创建MSSQL数据库表存储过程[07-30]
SQL SERVER 2000 安装(症状归纳..[07-30]
Mysql数据库操作新手入门,手把手..[07-30]
SQL Server 存储过程嵌套示例[07-30]
教你轻松应对JSP连接MySQL数据库..[07-30]
C#图像放大问题解决方法[07-30]
SQL Server 2005 创建登录时提示..[07-30]
Mysql关于数据库和表的几个最基本..[07-30]
成批更改sql server数据库所有者..[07-30]
ASP.NET--制作功能完善的安装程序[07-30]
用PHOTOSHOP制作漂亮的边框[07-30]
免费QQ秀再赠送 每天限量3000套开..[07-30]
Windows Vista系统自带防火墙高级..[07-30]
Word 2007里写日志 再直接发布到..[07-30]
自己动手 让Firefox 2.0用上迅雷..[07-30]