首页 >>  正文

set+rule

来源:baiyundou.net   日期:2024-07-20
Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式
RBO方式:优化器在分析语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给 出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些应及时更新这些信息。
注意:走索引不一定就是优的,比如一个表只有两行数据,一次IO就可以完成全表的检索,而此时走索引时则需要两次IO,这时全表扫描(full scan)是最好
优化模式包括Rule、Choose、First rows、All rows四种方式:
Rule:基于规则的方式。
Choolse:默认的情况下Oracle用的便是这种方式。指的是当一个表或或索引有统计信息,则走CBO的方式,如果表或索引没统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,走RBO的方式。
First Rows:它与Choose方式是类似的,所不同的是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,从总体上减少了响应时间。
All Rows:也就是我们所说的Cost的方式,当一个表有统计信息时,它将以最快的方式返回表的所有的行,从总体上提高查询的吞吐量。没有统计信息则走RBO的方式。
设定选用哪种优化模式:
A、Instance级别我们可以通过在initSID.ora文件中设定OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS如果没设定OPTIMIZER_MODE参数则默认用的是Choose方式。
B、Sessions级别通过ALTER SESSION SET OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS来设定。
C、语句级别用Hint()来设定
为什么表的某个字段明明有索引,但执行计划却不走索引?
1、优化模式是all_rows的方式
2、表作过analyze,有统计信息
3、表很小,上文提到过的,Oracle的优化器认为不值得走索引


","gnid":"9caec5ffa3996c4e2","img_data":[{"flag":2,"img":[{"desc":"","height":"373","title":"","url":"https://p0.ssl.img.360kuai.com/t01421cac7db25629c3.png","width":"767"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"pika","pub_time":1695115174000,"pure":"","rawurl":"http://zm.news.so.com/ce929cc4c0c69c78e300aabe45748b0c","redirect":0,"rptid":"ef2470624d54e183","rss_ext":[],"s":"t","src":"重庆思庄","tag":[{"clk":"ktechnology_1:cpu","k":"cpu","u":""}],"title":"oracle的四种优化模式

屈林成1746汉语拼音查几个字,叫不准规矩个人偏好
曹滢昆17678627666 ______ 规矩如果是词典上的意思,无论作名词或动词都是矩念轻声,但当规矩的意思是古时说的圆形和方形或是圆规和尺时,为了同时强调两个字各自的意思所以都念它们本来的声调,第一声和第三声.另外当它们被拆开来成为有规有矩时,为了声调的和谐以及意义表达的连贯,也念回它们原来各自的声调. 偏好有第三声和第四声两种读法,念前者音时是方言中碰巧的意思,现在已很少使用,而念第四声时则是如今比较普遍认同的"喜欢"之意.个人偏好明显属后者.

屈林成1746sql server字段存公式,怎样将计算结果转数字 -
曹滢昆17678627666 ______ 用系统存储过程吧:sp_executesql 修改后的代码如下:declare @rule nvarchar(500) declare @score int set @score=2 set @rule=N'set @score='+replace(@rule,'p',@score) exec sp_executesql @rule, N'@score int out' , @score out print @score

屈林成1746C#怎么把查询的值赋给某一变量 -
曹滢昆17678627666 ______ values = cmd.ExecuteScalar().ToString(); 你那个是执行sql命令并返回受影响行数.

屈林成1746drools的规则实例到底指的是什么? -
曹滢昆17678627666 ______ InfoQ发布了一个关于规则引擎的介绍Real-World Rule Engines,原文 ONJava上也有两篇文章:Give Your Business Logic a Framework with Drools Using Drools in Your Enterprise Java Application 下面总结一下其中的精华:大多数web和企业...

屈林成1746如何在python代码中使用scws -
曹滢昆17678627666 ______ SCWS 中文分词的详情见:http://www.xunsearch.com/scws/ 项目地址: https://github.com/assad2012/Python-scws 直接make即可,然后把_scws拷贝到python的sites-packages下 示例: #/usr/bin/python #coding=utf-8 import _scws class fenci():...

屈林成1746setall什么意思,是函数名吗? -
曹滢昆17678627666 ______ set all un.平局 全部设置;全部设置方法;全部设定为指定值 例句筛选 1. MCA channels require +setall rights on the queue manager and on queues. MCA通道需要针对队列管理器和队列的+setall权限. 2. As a rule, +setall rights should not be granted to channels of type SVRCONN. 作为规则,不能将+setall权限赋予SVRCONN类型的通道.

屈林成1746Nginx伪静态处理,高手进来,帮我处理下. -
曹滢昆17678627666 ______ #ignored: condition 0if ($uri !~ "^.*fck.*$"){ set $rule_0 2$rule_0;}if ($uri !~ "^.*zfb.*$"){ set $rule_0 3$rule_0;}if ($uri !~ "^.*validate.*$"){ set $rule_0 4$rule_0;}if ($uri !~ "^.*google4c1a240857d59737.*$"){ set $rule_0 5$rule_0;}if ($rule_0 = "54321"){ rewrite ^/(.*)$ /app/webroot/index.php;}没测试过,不知道可不可以用

屈林成1746制定制度用什么词组代替 -
曹滢昆17678627666 ______ constitute rules

屈林成1746求助!linux可以从系统跳转出去但是别的机器跳转不进来! -
曹滢昆17678627666 ______ 从你的载图的提示信息来看,你本机的/root/.ssh/known_hosts已经存在192.168.0.207的便信息了,你只要删了本机/root/.ssh/known_hosts中192.168.0.207的机器信息就可以了!

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024