oracle查詢慢的解決方法:1、把資料、日誌、索引放到不同的I、O設備上,增加讀取速度;2、升級硬體;3、提高網速;4、縱向、橫向分割表,減少表的尺寸。
oracle查詢慢的解決方法:
1、把資料、日誌、索引放到不同的I /O設備上,增加讀取速度,以前可以將Tempdb應放在RAID0上,SQL2000不在支援。資料量(尺寸)越大,提高I/O越重要.
2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)
3、升級硬體
4、根據查詢條件,建立索引,最佳化索引、最佳化存取方式,限制結果集的資料量。注意填充因子要適當(最好是使用預設值0)。索引應該盡量小,使用位元組數小的列建索引好(參考索引的創建),不要對有限的幾個值的字段建單一索引如性別字段
5、提高網速;
6、擴大伺服器的記憶體,Windows 2000和SQL server 2000能支援4-8G的記憶體。配置虛擬記憶體:虛擬記憶體大小應基於電腦上並發運行的服務進行配置。執行 Microsoft SQL Server? 2000 時,可考慮將虛擬記憶體大小設定為電腦中安裝的實體記憶體的 1.5 倍。如果另外安裝了全文檢索功能,並打算執行 Microsoft 搜尋服務以便執行全文索引和查詢,可考慮:將虛擬記憶體大小配置為至少是電腦中安裝的實體記憶體的 3 倍。將 SQL Server max server memory 伺服器設定選項配置為實體記憶體的 1.5 倍(虛擬記憶體大小設定的一半)。
7、增加伺服器 CPU個數;但是必須明白並行處理串行處理更需要資源例如記憶體。使用並行還是字串行程是MsSQL自動評估選擇的。單一任務分解成多個任務,就可以在處理器上運作。例如耽擱查詢的排序、連接、掃描和GROUP BY字句同時執行,SQL SERVER根據系統的負載情況決定最優的平行等級,複雜的需要消耗大量的CPU的查詢最適合併行處理。但是更新操作Update,Insert, Delete還不能並行處理。
8、如果是使用like進行查詢的話,簡單的使用index是不行的,但是全文索引,耗空間。 like 'a%' 使用索引 like '%a' 不使用索引用 like '%a%' 查詢時,查詢耗時和字段值總長度成正比,所以不能用CHAR類型,而是VARCHAR。對於欄位的值很長的建全文索引。
9、DB Server 和APPLication Server 分離;OLTP和OLAP分離
10、分散式分割區視圖可用來實作資料庫伺服器聯合體。聯合體是一組分開管理的伺服器,但它們相互協作分擔系統的處理負荷。這種透過分區資料形成資料庫伺服器聯合體的機制能夠擴大一組伺服器,以支援大型的多層 Web 網站的處理需求。有關更多信息,請參閱設計聯合資料庫伺服器。 (參考SQL幫助文件'分區視圖')
a、在實現分區視圖之前,必須先水平分區表
b、在建立成員表後,在每個成員伺服器上定義一個分散式分割區視圖,並且每個視圖具有相同的名稱。這樣,引用分散式分割區視圖名的查詢可以在任何一個成員伺服器上執行。系統操作如同每個成員伺服器上都有一個原始表的複本一樣,但其實每個伺服器上只有一個成員表和一個分散式分割區視圖。數據的位置對應用程式是透明的。
11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮資料和日誌 DBCC SHRINKDB,DBCC SHRINKFILE. 設定自動收縮日誌.對於大的資料庫不要設定資料庫自動成長,它會降低伺服器的效能。
#相關學習推薦:oracle資料庫學習教學
以上是oracle查詢慢怎麼辦?的詳細內容。更多資訊請關注PHP中文網其他相關文章!