国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

ORACLE常用傻瓜問(wèn)題1000問(wèn)(之五)

2024-08-29 13:30:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 
              oracle常用傻瓜問(wèn)題1000問(wèn)(之五)

 

作者:  ccbzzp

 

        大家在應(yīng)用oracle的時(shí)候可能會(huì)遇到很多看起來(lái)不難的問(wèn)題, 特別對(duì)新手來(lái)說(shuō), 今天我簡(jiǎn)單把它總結(jié)一下, 發(fā)布給大家, 希望對(duì)大家有幫助! 和大家一起探討, 共同進(jìn)步!

 

        對(duì)oracle高手來(lái)說(shuō)是不用看的.

 
   本講主要講的是sql語(yǔ)句的優(yōu)化方法! 主要基于oracle9i的.
174. /*+all_rows*/
   表明對(duì)語(yǔ)句塊選擇基于開銷的優(yōu)化方法,并獲得最佳吞吐量,使資源消耗最小化.
   例如:
   select /*+all+_rows*/ emp_no,emp_nam,dat_in from bsempms where emp_no='ccbzzp';

175. /*+first_rows*/
   表明對(duì)語(yǔ)句塊選擇基于開銷的優(yōu)化方法,并獲得最佳響應(yīng)時(shí)間,使資源消耗最小化.
   例如:
   select /*+first_rows*/ emp_no,emp_nam,dat_in from bsempms where    emp_no='ccbzzp';

176. /*+choose*/
   表明如果數(shù)據(jù)字典中有訪問(wèn)表的統(tǒng)計(jì)信息,將基于開銷的優(yōu)化方法,并獲得最佳的吞吐量;
   表明如果數(shù)據(jù)字典中沒(méi)有訪問(wèn)表的統(tǒng)計(jì)信息,將基于規(guī)則開銷的優(yōu)化方法;
   例如:
   select /*+choose*/ emp_no,emp_nam,dat_in from bsempms where emp_no='ccbzzp';

177. /*+rule*/
   表明對(duì)語(yǔ)句塊選擇基于規(guī)則的優(yōu)化方法.
   例如:
   select /*+ rule */ emp_no,emp_nam,dat_in from bsempms where emp_no='ccbzzp';  

178. /*+full(table)*/
   表明對(duì)表選擇全局掃描的方法.
   例如:
   select /*+full(a)*/ emp_no,emp_nam from bsempms a where emp_no='ccbzzp';

179. /*+rowid(table)*/
   提示明確表明對(duì)指定表根據(jù)rowid進(jìn)行訪問(wèn).
   例如:
   select /*+rowid(bsempms)*/ * from bsempms where rowid>='aaaaaaaaaaaaaa'
   and emp_no='ccbzzp';

180. /*+cluster(table)*/
   提示明確表明對(duì)指定表選擇簇掃描的訪問(wèn)方法,它只對(duì)簇對(duì)象有效.
   例如:
   select  /*+cluster */ bsempms.emp_no,dpt_no from bsempms,bsdptms
   where dpt_no='tec304' and bsempms.dpt_no=bsdptms.dpt_no;

181. /*+index(table index_name)*/
   表明對(duì)表選擇索引的掃描方法.
   例如:
   select /*+index(bsempms sex_index) use sex_index because there are fewmale    bsempms */  from bsempms where sex='m';

182. /*+index_asc(table index_name)*/
   表明對(duì)表選擇索引升序的掃描方法.
   例如:
   select /*+index_asc(bsempms pk_bsempms) */  from bsempms where dpt_no='ccbzzp';

183. /*+index_combine*/
   為指定表選擇位圖訪問(wèn)路經(jīng),如果index_combine中沒(méi)有提供作為參數(shù)的索引,將選擇出位圖索引的
   布爾組合方式.
   例如:
   select /*+index_combine(bsempms sal_bmi hiredate_bmi)*/ * from bsempms
   where sal<5000000 and hiredate<sysdate;

184. /*+index_join(table index_name)*/
   提示明確命令優(yōu)化器使用索引作為訪問(wèn)路徑.
   例如:
   select /*+index_join(bsempms sal_hmi hiredate_bmi)*/ sal,hiredate
   from bsempms where sal<60000;

185. /*+index_desc(table index_name)*/
   表明對(duì)表選擇索引降序的掃描方法.
   例如:
   select /*+index_desc(bsempms pk_bsempms) */  from bsempms where    dpt_no='ccbzzp';

186. /*+index_ffs(table index_name)*/
   對(duì)指定的表執(zhí)行快速全索引掃描,而不是全表掃描的辦法.
   例如:
   select /*+index_ffs(bsempms in_empnam)*/ * from bsempms where dpt_no='tec305';

187. /*+add_equal table index_nam1,index_nam2,...*/
   提示明確進(jìn)行執(zhí)行規(guī)劃的選擇,將幾個(gè)單列索引的掃描合起來(lái).
   例如:
   select /*+index_ffs(bsempms in_dptno,in_empno,in_sex)*/ * from bsempms where emp_no='ccbzzp' and dpt_no='tdc306';

188. /*+use_concat*/
   對(duì)查詢中的where后面的or條件進(jìn)行轉(zhuǎn)換為union all的組合查詢.
   例如:
   select /*+use_concat*/ * from bsempms where dpt_no='tdc506' and sex='m';

189. /*+no_expand*/
   對(duì)于where后面的or 或者in-list的查詢語(yǔ)句,no_expand將阻止其基于優(yōu)化器對(duì)其進(jìn)行擴(kuò)展.
   例如:
   select /*+no_expand*/ * from bsempms where  dpt_no='tdc506' and sex='m';

190. /*+nowrite*/
   禁止對(duì)查詢塊的查詢重寫操作.

191. /*+rewrite*/
   可以將視圖作為參數(shù).

192. /*+merge(table)*/
   能夠?qū)σ晥D的各個(gè)查詢進(jìn)行相應(yīng)的合并.
   例如:
   select /*+merge(v) */ a.emp_no,a.emp_nam,b.dpt_no from bsempms a (selet dpt_no
   ,avg(sal) as avg_sal from bsempms b group by dpt_no) v where a.dpt_no=v.dpt_no
   and a.sal>v.avg_sal;

193. /*+no_merge(table)*/
   對(duì)于有可合并的視圖不再合并.
   例如:
   select /*+no_merge(v) */ a.emp_no,a.emp_nam,b.dpt_no from bsempms a (selet dpt_no
   ,avg(sal) as avg_sal from bsempms b group by dpt_no) v where a.dpt_no=v.dpt_no
   and a.sal>v.avg_sal;
  
194. /*+ordered*/
   根據(jù)表出現(xiàn)在from中的順序,ordered使oracle依此順序?qū)ζ溥B接.
   例如:
   select /*+ordered*/ a.col1,b.col2,c.col3 from table1 a,table2 b,table3 c
   where a.col1=b.col1 and b.col1=c.col1;

195. /*+use_nl(table)*/
   將指定表與嵌套的連接的行源進(jìn)行連接,并把指定表作為內(nèi)部表.
   例如:
   select /*+ordered use_nl(bsempms)*/ bsdptms.dpt_no,bsempms.emp_no,bsempms.emp_nam from bsempms,bsdptms where bsempms.dpt_no=bsdptms.dpt_no;

196. /*+use_merge(table)*/
   將指定的表與其他行源通過(guò)合并排序連接方式連接起來(lái).
   例如:
   select /*+use_merge(bsempms,bsdptms)*/ * from bsempms,bsdptms where
   bsempms.dpt_no=bsdptms.dpt_no;

197. /*+use_hash(table)*/
   將指定的表與其他行源通過(guò)哈希連接方式連接起來(lái).
   例如:
   select /*+use_hash(bsempms,bsdptms)*/ * from bsempms,bsdptms where
   bsempms.dpt_no=bsdptms.dpt_no;

198. /*+driving_site(table)*/
   強(qiáng)制與oracle所選擇的位置不同的表進(jìn)行查詢執(zhí)行.
   例如:
   select /*+driving_site(dept)*/ * from bsempms,[email protected] where bsempms.dpt_no=dept.dpt_no;

199. /*+leading(table)*/
   將指定的表作為連接次序中的首表.
  
200. /*+cache(table)*/
   當(dāng)進(jìn)行全表掃描時(shí),cache提示能夠?qū)⒈淼臋z索塊放置在緩沖區(qū)緩存中最近最少列表lru的最近使用端
   例如:
   select /*+full(bsempms) cahe(bsempms) */ emp_nam from  bsempms;

201. /*+nocache(table)*/
   當(dāng)進(jìn)行全表掃描時(shí),cache提示能夠?qū)⒈淼臋z索塊放置在緩沖區(qū)緩存中最近最少列表lru的最近使用端
   例如:
   select /*+full(bsempms) nocahe(bsempms) */ emp_nam from  bsempms;

202. /*+append*/
   直接插入到表的最后,可以提高速度.
   insert /*+append*/ into test1  select * from test4 ;
203. /*+noappend*/
   通過(guò)在插入語(yǔ)句生存期內(nèi)停止并行模式來(lái)啟動(dòng)常規(guī)插入.

   insert /*+noappend*/ into test1  select * from test4 ;


   
   待續(xù)...

  
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 聂荣县| 满洲里市| 米林县| 泰安市| 子长县| 罗甸县| 岳阳县| 交城县| 三穗县| 定襄县| 麻城市| 灌阳县| 宁阳县| 太仓市| 儋州市| 谷城县| 富民县| 雅安市| 长岛县| 改则县| 靖州| 和林格尔县| 喀喇沁旗| 富裕县| 卢氏县| 拉萨市| 繁昌县| 仪征市| 五原县| 琼海市| 丹凤县| 永年县| 江阴市| 龙海市| 长子县| 噶尔县| 本溪市| 榆树市| 封开县| 太仆寺旗| 镇江市|