知识大全 在PB中调用外部函数[1]

Posted 索引

篇首语:落花踏尽游何处,笑入胡姬酒肆中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在PB中调用外部函数[1]相关的知识,希望对你有一定的参考价值。

在PB中调用外部函数[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ORACLE数据库的PL/SQL语句执行的优化器 有基于代价的优化器(CBO)和基于规则的优化器(RBO)

  RBO的优化方式 依赖于一套严格的语法规则 只要按照规则写出的语句 不管数据表和索引的内容是否发生变化 不会影响PL/SQL语句的 执行计划

  CBO自ORACLE 版被引入 ORACLE自 版以来采用的许多新技术都是只基于CBO的 如星型连接排列查询 哈希连接查询 反向索引 索引表 分区表和并行查询等 CBO计算各种可能 执行计划 的 代价 即cost 从中选用cost最低的方案 作为实际运行方案 各 执行计划 的cost的计算根据 依赖于数据表中数据的统计分布 ORACLE数据库本身对该统计分布是不清楚的 须要分析表和相关的索引 才能搜集到CBO所需的数据

  CBO是ORACLE推荐使用的优化方式 要想使用好CBO 使SQL语句发挥最大效能 必须保证统计数据的及时性

  统计信息的生成可以有完全计算法和抽样估算法

  SQL例句如下

  完全计算法 analyze table abc pute statistics;

  抽样估算法(抽样 %) analyze table abc estimate statistics sample percent;

  对表作完全计算所花的时间相当于做全表扫描 抽样估算法由于采用抽样 比完全计算法的生成统计速度要快 如果不是要求要有精确数据的话 尽量采用抽样分析法 建议对表分析采用抽样估算 对索引分析可以采用完全计算

  我们可以采用以下两种方法 对数据库的表和索引及簇表定期分析生成统计信息 保证应用的正常性能

   在系统设置定时任务 执行分析脚本

  在数据库服务器端 我们以UNIX用户oracle 运行脚本analyze 在analyze中 我们生成待执行sql脚本 并运行 (假设我们要分析scott用户下的所有表和索引)

  Analyze脚本内容如下

  sqlplus scott/tiger 《 EOF

  set pagesize

  set heading off

  SPOOL ANALYTAB SQL

  SELECT ANALYZE TABLE SCOTT ||TABLE_NAME|| ESTIMATE STATISTICS SAMPLE PERCENT ; FROM USER_TABLES;

  SPOOL OFF

  SPOOL ANALYIND SQL

  SELECT ANALYZE TABLE SCOTT ||TABLE_NAME|| ESTIMATE STATISTICS SAMPLE PERCENT FOR ALL INDEXES; FROM USER_TABLES;

  SPOOL OFF

  SPOOL ANALYZE LOG

  @ANALYTAB SQL

  @ANALYIND SQL

  SPOOL OFF

  EXIT

  在UNIX平台上crontab加入 以上文件 设置为每个月或合适的时间段运行

   利用ORACLE提供的程序包(PACKAGE)对相关的数据库对象进行分析

  有以下的程序包可以对表 索引 簇表进行分析

  包中的存储过程的相关参数解释如下

  TYPE可以是 TABLE INDEX CLUSTER中其一

  SCHEMA为 TABLE INDEX CLUSTER的所有者 NULL为当前用户

  NAME为 相关对象的名称

  METHOD是 ESTIMATE PUTE DELETE中其一 当选用ESTIMATE

  下面两项 ESTIMATE_ROWS和ESTIMATE_PERCENT不能同时为空值

  ESTIMATE_ROWS是 估算的抽样行数

  ESTIMATE_PERCENT是 估算的抽样百分比

  METHOD_OPT是 有以下选项

  FOR TABLE /*只统计表*/

  [FOR ALL [INDEXED] COLUMNS] [SIZE N] /*只统计有索引的表列*/

  FOR ALL INDEXES /*只分析统计相关索引*/

  PARTNAME是 指定要分析的分区名称

   )

  DBMS_DDL ANALYZE_OBJECT(

  TYPE VARCHAR

  SCHEMA VARCHAR

  NAME VARCHAR

  METHOD VARCHAR

  ESTIMATE_ROWS NUMBER DEFAULT NULL

  ESTIMATE_PERCENT NUMBER DEFAULT NULL

  METHOD_OPT VARCHAR DEFAULT NULL

  PARTNAME VARCHAR DEFAULT NULL ) ;

  该存储过程可对特定的表 索引和簇表进行分析

cha138/Article/program/PB/201311/24615

相关参考

知识大全 在PB中调用外部程序并判断其运行结束

在PB中调用外部程序并判断其运行结束  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  您正在看的P

知识大全 VB动态调用外部函数的方法

VB动态调用外部函数的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VB可以用Declar

知识大全 在Java程序中调用Matlab函数

在Java程序中调用Matlab函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 在Java中调用Oracle的过程和函数

在Java中调用Oracle的过程和函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  内容或简

知识大全 在C#中动态调用native dll的导出函数

在C#中动态调用nativedll的导出函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在C

知识大全 如何在Delphi中调用.Net编写的DLL中的函数

如何在Delphi中调用.Net编写的DLL中的函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 javascript中iframe里面的页面调用父窗口js函数的方法

  实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法  比如有A窗口A内有个IFRAMEBB里面的装载的是C页面这时C要直接调用A里面的一个自定义函数ExpandPage();

知识大全 工作流引擎Shark中调用外部程序的方法

工作流引擎Shark中调用外部程序的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近看了

知识大全 php方法调用模式与函数调用模式简例

  现有某函数与对象如下:  vardoubling=function(x)returnx*;;varobj=val:;函数调用模式时this被绑定到全局对象这种情况在对象的属性与方法被初始化时也能够

知识大全 iframe子父页面调用

  iframe子页面调用父页面js函数  子页面调用父页面函数只需要写上windowpraent就可以了比如调用a()函数就写成  windowparenta();  子页面取父页面中的标签中的值比