• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 怎樣使你的SQL運行得更加靈活和高效

    發表于:2008-10-13來源:作者:點擊數: 標簽:sqlSQLSql運行
    關鍵字: sql 人們在使用 SQL 時往往會陷入一個誤區,即太關注于所得的結果是否正確,而忽略了不同的實現方法之間可能存在的 性能 差異,這種性能差異在大型的或是復雜的 數據庫 環境中(如聯機事務處理OLTP或決策支持系統DSS)中表現得尤為明顯。筆者在工作
    關鍵字:sql

    人們在使用SQL時往往會陷入一個誤區,即太關注于所得的結果是否正確,而忽略了不同的實現方法之間可能存在的性能差異,這種性能差異在大型的或是復雜的數據庫環境中(如聯機事務處理OLTP或決策支持系統DSS)中表現得尤為明顯。筆者在工作實踐中發現,不良的SQL往往來自于不恰當的索引設計、不充份的連接條件和不可優化的where子句。在對它們進行適當的優化后,其運行速度有了明顯地提高!下面我將從這三個方面分別進行總結:

    為了更直觀地說明問題,所有實例中的SQL運行時間均經過測試,不超過1秒的均表示為(< 1秒)。

    測試環境

    主機:HP LH II

    主頻:330MHZ

    內存:128兆

    操作系統:Operserver5.0.4

    數據庫:Sybase11.0.3

    一、不合理的索引設計

    例:表record有620000行,試看在不同的索引下,下面幾個 SQL的運行情況:

    1.在date上建有一非個群集索引

    select count(*) from record where date >
    '19991201' and date < '19991214'and amount >
    2000 (25秒)
    select date,sum(amount) from record group by date
    (55秒)
    select count(*) from record where date >
    '19990901' and place in ('BJ','SH') (27秒)

    分析:

    date上有大量的重復值,在非群集索引下,數據在物理上隨機存放在數據頁上,在范圍查找時,必須執行一次表掃描才能找到這一范圍內的全部行。

    2.在date上的一個群集索引

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>