• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            tbwshc

            tbw

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            三、只返回需要的數據

            返回數據到客戶端至少需要數據庫提取數據、網絡傳輸數據、客戶端接收數據以及客戶端處理數據等環節,如果返回不需要的數據,就會增加服務器、網絡和客戶端的無效勞動,其害處是顯而易見的,避免這類事件需要注意:

            A、橫向來看,

            (1)不要寫SELECT *的語句,而是選擇你需要的字段。

            (2)當在SQL語句中連接多個表時, 請使用表的別名并把別名前綴于每個Column上.這樣一來,就可以減少解析的時間并減少那些由Column歧義引起的語法錯誤。

            1. 如有表table1(ID,col1)和table2 (ID,col2)  
            2. Select A.ID, A.col1, B.col2  
            3. -- Select A.ID, col1, col2 –不要這么寫,不利于將來程序擴展  
            4. from table1 A inner join table2 B on A.ID=B.ID Where … 

            B、縱向來看,

            (1)合理寫WHERE子句,不要寫沒有WHERE的SQL語句。

            (2) SELECT TOP N * --沒有WHERE條件的用此替代


            四 :盡量少做重復的工作

            A、控制同一語句的多次執行,特別是一些基礎數據的多次執行是很多程序員很少注意的。

            B、減少多次的數據轉換,也許需要數據轉換是設計的問題,但是減少次數是程序員可以做到的。

            C、杜絕不必要的子查詢和連接表,子查詢在執行計劃一般解釋成外連接,多余的連接表帶來額外的開銷。

            D、合并對同一表同一條件的多次UPDATE,比如

            1. UPDATE EMPLOYEE SET FNAME='HAIWER' 
            2. WHERE EMP_ID=' VPA30890F' UPDATE EMPLOYEE SET LNAME='YANG' 
            3. WHERE EMP_ID=' VPA30890F' 

            這兩個語句應該合并成以下一個語句

            UPDATE EMPLOYEE SET FNAME='HAIWER',LNAME='YANG' WHERE EMP_ID=' VPA30890F'

            E、UPDATE操作不要拆成DELETE操作+INSERT操作的形式,雖然功能相同,但是性能差別是很大的。

             

            五、注意臨時表和表變量的用法

            在復雜系統中,臨時表和表變量很難避免,關于臨時表和表變量的用法,需要注意:

            A、如果語句很復雜,連接太多,可以考慮用臨時表和表變量分步完成。

            B、如果需要多次用到一個大表的同一部分數據,考慮用臨時表和表變量暫存這部分數據。

            C、如果需要綜合多個表的數據,形成一個結果,可以考慮用臨時表和表變量分步匯總這多個表的數據。

            D、其他情況下,應該控制臨時表和表變量的使用。

            E、關于臨時表和表變量的選擇,很多說法是表變量在內存,速度快,應該首選表變量,但是在實際使用中發現,

            (1)主要考慮需要放在臨時表的數據量,在數據量較多的情況下,臨時表的速度反而更快。

            (2)執行時間段與預計執行時間(多長)

            F、關于臨時表產生使用SELECT INTO和CREATE TABLE + INSERT INTO的選擇,一般情況下,

            SELECT INTO會比CREATE TABLE + INSERT INTO的方法快很多,

            但是SELECT INTO會鎖定TEMPDB的系統表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用戶并發環境下,容易阻塞其他進程,

            所以我的建議是,在并發系統中,盡量使用CREATE TABLE + INSERT INTO,而大數據量的單個語句使用中,使用SELECT INTO。

            posted on 2012-07-01 12:16 tbwshc 閱讀(957) 評論(0)  編輯 收藏 引用
            狠狠狠色丁香婷婷综合久久五月| 国产精品热久久无码av| 亚洲人成伊人成综合网久久久| 国产精品久久久久久吹潮| 久久亚洲国产中v天仙www| 久久久久亚洲av毛片大| 久久无码中文字幕东京热| 久久99中文字幕久久| 亚洲精品tv久久久久久久久久| 亚洲国产精品无码久久久蜜芽| 国产精品成人99久久久久91gav| 亚洲国产成人精品女人久久久 | 2022年国产精品久久久久| 精品久久久久久99人妻| 久久精品99久久香蕉国产色戒| 久久精品亚洲中文字幕无码麻豆| 一本久道久久综合狠狠躁AV| 亚洲天堂久久精品| 精品熟女少妇av免费久久| 国产精品久久新婚兰兰| 久久久久久青草大香综合精品| 人妻无码久久一区二区三区免费| 亚洲国产成人久久笫一页| 久久99国产精品成人欧美| av无码久久久久久不卡网站| 亚洲色大成网站WWW久久九九| 一本大道久久香蕉成人网| 久久久久久国产精品无码下载| 久久久久久a亚洲欧洲aⅴ| AV无码久久久久不卡蜜桃| 蜜臀久久99精品久久久久久小说| 综合久久精品色| 久久综合久久鬼色| 青青草国产97免久久费观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 四虎国产精品成人免费久久| 久久精品国产99久久香蕉| 九九久久精品国产| 女同久久| 久久精品国产99国产精品亚洲| 麻豆av久久av盛宴av|