成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發編程>>數據庫>>新聞內容
ORACLE常用傻瓜問題1000問(之五)
作者:CCBZZP 發布時間:2003-10-16 22:33:53 文章來源:CSDN

        大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步!

 

        對ORACLE高手來說是不用看的.


   本講主要講的是SQL語句的優化方法! 主要基于ORACLE9I的.
174. /*+ALL_ROWS*/
   表明對語句塊選擇基于開銷的優化方法,并獲得最佳吞吐量,使資源消耗最小化.
   例如:
   SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';

175. /*+FIRST_ROWS*/
   表明對語句塊選擇基于開銷的優化方法,并獲得最佳響應時間,使資源消耗最小化.
   例如:
   SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE    EMP_NO='CCBZZP';

176. /*+CHOOSE*/
   表明如果數據字典中有訪問表的統計信息,將基于開銷的優化方法,并獲得最佳的吞吐量;
   表明如果數據字典中沒有訪問表的統計信息,將基于規則開銷的優化方法;
   例如:
   SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';

177. /*+RULE*/
   表明對語句塊選擇基于規則的優化方法.
   例如:
   SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';  

178. /*+FULL(TABLE)*/
   表明對表選擇全局掃描的方法.
   例如:
   SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='CCBZZP';

179. /*+ROWID(TABLE)*/
   提示明確表明對指定表根據ROWID進行訪問.
   例如:
   SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
   AND EMP_NO='CCBZZP';

180. /*+CLUSTER(TABLE)*/
   提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇對象有效.
   例如:
   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)*/
   表明對表選擇索引的掃描方法.
   例如:
   SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE    BSEMPMS */  FROM BSEMPMS WHERE SEX='M';

182. /*+INDEX_ASC(TABLE INDEX_NAME)*/
   表明對表選擇索引升序的掃描方法.
   例如:
   SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */  FROM BSEMPMS WHERE DPT_NO='CCBZZP';

183. /*+INDEX_COMBINE*/
   為指定表選擇位圖訪問路經,如果INDEX_COMBINE中沒有提供作為參數的索引,將選擇出位圖索引的
   布爾組合方式.
   例如:
   SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
   WHERE SAL<5000000 AND HIREDATE<SYSDATE;

184. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
   提示明確命令優化器使用索引作為訪問路徑.
   例如:
   SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
   FROM BSEMPMS WHERE SAL<60000;

185. /*+INDEX_DESC(TABLE INDEX_NAME)*/
   表明對表選擇索引降序的掃描方法.
   例如:
   SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */  FROM BSEMPMS WHERE    DPT_NO='CCBZZP';

186. /*+INDEX_FFS(TABLE INDEX_NAME)*/
   對指定的表執行快速全索引掃描,而不是全表掃描的辦法.
   例如:
   SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';

187. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
   提示明確進行執行規劃的選擇,將幾個單列索引的掃描合起來.
   例如:
   SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='CCBZZP' AND DPT_NO='TDC306';

188. /*+USE_CONCAT*/
   對查詢中的WHERE后面的OR條件進行轉換為UNION ALL的組合查詢.
   例如:
   SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';

189. /*+NO_EXPAND*/
   對于WHERE后面的OR 或者IN-LIST的查詢語句,NO_EXPAND將阻止其基于優化器對其進行擴展.
   例如:
   SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE  DPT_NO='TDC506' AND SEX='M';

190. /*+NOWRITE*/
   禁止對查詢塊的查詢重寫操作.

191. /*+REWRITE*/
   可以將視圖作為參數.

192. /*+MERGE(TABLE)*/
   能夠對視圖的各個查詢進行相應的合并.
   例如:
   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)*/
   對于有可合并的視圖不再合并.
   例如:
   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*/
   根據表出現在FROM中的順序,ORDERED使ORACLE依此順序對其連接.
   例如:
   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)*/
   將指定表與嵌套的連接的行源進行連接,并把指定表作為內部表.
   例如:
   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)*/
   將指定的表與其他行源通過合并排序連接方式連接起來.
   例如:
   SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
   BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

197. /*+USE_HASH(TABLE)*/
   將指定的表與其他行源通過哈希連接方式連接起來.
   例如:
   SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
   BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

198. /*+DRIVING_SITE(TABLE)*/
   強制與ORACLE所選擇的位置不同的表進行查詢執行.
   例如:
   SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;

199. /*+LEADING(TABLE)*/
   將指定的表作為連接次序中的首表.
  
200. /*+CACHE(TABLE)*/
   當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩沖區緩存中最近最少列表LRU的最近使用端
   例如:
   SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM  BSEMPMS;

201. /*+NOCACHE(TABLE)*/
   當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩沖區緩存中最近最少列表LRU的最近使用端
   例如:
   SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM  BSEMPMS;

202. /*+APPEND*/
   直接插入到表的最后,可以提高速度.
   insert /*+append*/ into test1  select * from test4 ;
203. /*+NOAPPEND*/
   通過在插入語句生存期內停止并行模式來啟動常規插入.

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

   
   待續...


最新更新
·SQL Server 2005刪除用戶失敗
·SQL Server中刪除重復數據的
·經典SQL語句大全
·SQL Server 2005與ASP.NET/A
·三種查看MySQL數據庫版本的方
·SQL Server 2005 Express 遠
·啟用SQL Server 2005 Expres
·Windows下如何安裝或卸載MyS
·解決MySQL5數據庫連接超時問
·清除SQL Server日志的兩種方
相關信息
·2008主流數據庫產品回顧與展望
·安裝Oracle后配置和啟動企業管理器的方法
·簡單介紹Oracle 9i的16種數據類型
·如何在Oracle中導入dmp數據庫文件
·把Oracle查詢轉換為SQL Server
·輕松修改Oracle數據庫表的大小
·實例講解Oracle里抽取隨機數的多種方法
·Oracle在Linux操作系統下的安裝小結
·用Oracle8i修復數據庫壞塊的三種方法
·在Oracle中導出、導入dmp數據庫文件
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯
主站蜘蛛池模板: 民县| 重庆市| 安陆市| 温泉县| 嘉峪关市| 文水县| 阳山县| 大丰市| 尖扎县| 兴和县| 新和县| 西城区| 福建省| 新邵县| 沧源| 嵩明县| 咸阳市| 林州市| 绥滨县| 普兰店市| 南岸区| 蚌埠市| 渝中区| 黄龙县| 林州市| 遵义县| 双鸭山市| 丰原市| 新蔡县| 柯坪县| 富裕县| 名山县| 分宜县| 泸溪县| 仙桃市| 彭阳县| 胶南市| 铜鼓县| 贵定县| 平江县| 天全县|