回覆列表
  • 1 # 小雪020

    可以透過如下方法來最佳化查詢:

      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分離

  • 中秋節和大豐收的關聯?
  • 防側滑系統的工作原理!裝在車的那裡?和英文簡稱?