freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

oracle優(yōu)化器模式與oracle索引優(yōu)化規(guī)則(編輯修改稿)

2025-02-12 09:52 本頁面
 

【文章內容簡介】 512STORAGE(INITIAL100KNEXT50K)。l CREATETABLEemp(l empnoNUMBERl PRIMARYKEY,l enameVARCHAR2(10)NOTNULLl CHECK(ename=UPPER(ename)),l jobVARCHAR2(9),l mgrNUMBER,l mNUMBER(9,0)DEFAULTNULL,l deptnoNUMBER(2)NOTNULL)l CLUSTERpersonnel(deptno)。l l CREATETABLEdept(l deptnoNUMBER(2),l dnameVARCHAR2(9),l locVARCHAR2(9))l CLUSTERpersonnel(deptno)。l l CREATEINDEXidx_personnelONCLUSTERpersonnel。Oracle 聚簇索引l 這樣可以讓兩個表同時用上聚簇索引。保證兩個表的記錄按照 depno值盡量存放到同一個物理塊當中。 使用索引的一些規(guī)則,不要在小表上加索引 .。 SQL命令中的 where子句中的列最有用,不管這些列在選擇中用來限定行還是為了表連接。,可以使用索引。 Oracle建議當一個屬性中有少于 30個不同值時,索引不是很有用,當屬性中有 100或更多不同值時索引就很明顯地有用了。相似地,只有當使用索引進行查詢的結果不超過文件中所有記錄總數(shù)的 20%時,使用索引才有幫助。 DBMS對索引的限制,即便要在每個表允許的索引個數(shù)上。許多系統(tǒng)不超過 16個索引而且限制每個索引鍵值的大小。對一個表創(chuàng)建的索引數(shù)一般不超過 5個 .7.對于包含空值的屬性建立索引時要小心,在很多 DBMS里有空值的行不能在索引中作為參照。8.時常需要做刪除、更新、插入操作的表不要創(chuàng)建索引 .9.將表和索引建立在不同的表空間內 (TABLESPACES).不要將不屬于 ORACLE內部系統(tǒng)的對象存放到 SYSTEM表空間里 .同時 ,確保數(shù)據(jù)表空間和索引表空間置于不同的硬盤上 .減少 I/O競爭 .SQL優(yōu)化的一些規(guī)則 :(有些規(guī)則只有在基于規(guī)則的優(yōu)化器里有效 ).1選擇最有效率的表名順序: from子句的最后面一個表 . 3個以上的表連接查詢 ,那就需要選擇交叉表 (intersectiontable)作為基礎表 ,交叉表是指那個被其他表所引用的表 .原因: ORACLE的解析器按照從右到左的順序處理 FROM子句中的表名 ,因此 FROM子句中寫在最后的表 (基礎表 drivingtable)將被最先處理 .在 FROM子句中包含多個表的情況下 ,你必須選擇記錄條數(shù)最少的表作為基礎表 .當 ORACLE處理多個表時 ,會運用排序及合并的方式連接它們 .首先 ,掃描 第一個表 (FROM子句中最后的那個表 )并對記錄進行排序 ,然后掃描第二個表 (FROM子句中最后第二個表 ),最后將所有從第二個表中檢索出的記錄與第一個表中合適記錄進行合并 .2WHERE子句中的連接順序 :ORACLE采用自右向左的順序解析 WHERE子句 ,那些可以過濾掉最大數(shù)量記錄的條件必須寫在 WHERE子句的末尾 .3.SELECT子句中避免使用 ‘*‘ORACLE在解析的過程中 ,需要通過查詢數(shù)據(jù)字典將 39。*39。依次轉換成所有的列名 .4.使用表的別名 (Alias)當在 SQL語句中連接多個表時 ,請使用表的別名并把別名前綴于每個Column上 .這樣一來 ,就可以減少解析的時間并減少那些由 Column歧義引起的語法錯誤 .(Column歧義指的是由于 SQL中不同的表具有相同的 Column名 ,當 SQL語句中出現(xiàn)這個 Column時 ,SQL解析器無法判斷這個 Column的歸屬 )5.減少訪問數(shù)據(jù)庫的次數(shù) :當執(zhí)行每條 SQL語句時 ,ORACLE在內部執(zhí)行了許多工作 :解析 SQL語句 ,估算索引的利用率 ,綁定變量 ,讀數(shù)據(jù)塊等等 .由此可見 ,減少訪問數(shù)據(jù)庫的次數(shù) ,就能實際上減少 ORACLE的工作量 .6.(可能的話 )用 TRUNCATE替代 DELETE.當刪除表中的記錄時 ,在通常情況下 ,回滾段 (rollbacksegments)用來存放可以被恢復的信息 .如果你沒有 COMMIT事務 ,ORACLE會將數(shù)據(jù)恢復到執(zhí)行刪除命令之前的狀況 .而當運用 TRUNCATE時 ,回滾段不再存放任何可被恢復的信息 .當命令運行后 ,數(shù)據(jù)不能被恢復 .因此很少的資源被調用 ,執(zhí)行時間也會很短 .(TRUNCATE只在刪除全表里的記錄時適用 ,TRUNCATE是 DDL不是 DML)7.(可能的話 )使用 COMMIT只要有可能 ,在程序中盡量多使用 COMMIT,這樣程序的性能得到提高 ,需求也會因為
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1