亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JDBC性能優化技巧

2019-11-18 12:40:48
字體:
來源:轉載
供稿:網友

  ·  假如可能,避免訪問數據庫
  
  ·  為應用選擇最好最快的 JDBC 驅動 ,參考本站文章 。 JDBC3.0提供了新的特性來提高性能,諸如連接池, statemente池的改進 
  
  · 對數據庫使用連接池并且重用連接,而不要重復打開和關閉連接。最佳的連接池大小是當連接池大到足夠使服務請求不等待
  
  ·  盡量使用支持 JDBC3.0 的驅動,因為 JDBC3.0 支持包括 DataSource 對象,連接池,分布式事務支持, RowSets 和 PRepared statement 池等性能增強特性
  
  ·  Prepared statement 池(自從 JDBC3.0 開始有)高速緩存已經預先優化并運行了的 SQL 查詢,這樣,他們被再次請求的時候,不必經歷再次的優化預處理(避免最優化步驟,諸如檢查語法,驗證地址,優化訪問路徑和執行計劃)。 Statement 池是一個很好的,重要的性能優化方法
  
  ·  JDBC3.0 中的 Statement 池和連接池能合作共享 statement 池,這樣,能使用一個已高速緩存的 statement (該 statement 來自另外一個連接)的連接,在由任一連接執行的 一些SQL 首次被執行時,產生的 statement 預備開銷僅一次
  
  ·  RowSet對象與 ResultSet 對象相似,但是能提供當斷開連接的時候對數據庫數據的訪問。這答應數據以它最簡單的形式被高效的高速緩存
  
  ·  用同一個連接執行多個 statements
  
  ·  關閉 autocommit ,但不要讓事務打開太久
  
  ·  避免將事務分布開(事務跨越多個連接)
  
  ·  最小化數據庫的行和列數據獲取。使用 setMaxRows, setMaxFieldSize,和 SetFetchSize
  
  ·  使用最高效的數據類型:字符串比整數型快,整數型比浮點類型和時間戳類型都要高效(是否不太理解^&^,這是針對DB2數據庫處理來說的,處理character類型最快,而處理integer類型通常需要一些轉換或者字節排序)
  
  ·  使用 updateXXX()方法更新: updateXXX() 在可更新的結果集上調用。結果集已經定位到了一行 , 因此當使用一個 UPDATE statement 時,可以消除通常的查找要更新的數據行的開銷
  
  ·  Cache任何請求的元數據( metadata )并盡可能少的使用元數據 方法,其慢的程度一用便知
  
  ·  避免在元數據 查詢中使用 null 參數
  
  ·  使用虛擬查詢獲得一行的元數據,不要使用getcolumns()(假如應用答應用戶使用列數據,應用是使用getColumns來返回列的信息給用戶還是預備一個虛擬查詢而后調用getMetadata呢?
  
  ·  使用存儲過程,避免多余的網絡傳輸
  
  ·  在存儲過程中使用參量,不要將數據挨個地放在statement中,最小化解析開銷。此條針對DB2來說,其它數據庫未必適用。SQL總是以字符串形式發送給DB2數據庫,例如:
  CallableStatement cstmt = conn.prepareCall ("call getCustName (12345)");
  ResultSet rs = cstmt.executeQuery ();
  DB2服務器必須解析該SQL,驗證參量類型,并將參量轉化為正確的數據類型。
  
  ·  對需要重復執行的statement使用預處理statement(PreparedStatement)
  
  ·  選擇使用最佳游標:對連續讀取使用游標;對雙向滾動使用游標。對僅返回一行的查詢避免使用游標。
  
  ·  在JVM中Cache頻繁請求的數據,避免不必要的數據庫請求
  
  ·  采用預讀取機制, 批量取行,而不要一次一行 。調整批大小和預取行的數量。避免使用預取 BLOB 數據。
  
  ·  除非絕對需要,否則避免移動數據
  
  ·  在數據穿過網絡之前要使流化數據( Streamline data )
  
  ·  避免每次處理一行,盡可能一起處理多行。
  
  ·  在表中統計個數(例如:使用 select count(*) from myTable,yourTable where …)屬于資源密集型的。試試首先選入臨時表,僅返回該計數(count),然后發送精確的二次查詢獲得臨時表中的行的子集。
  
  ·  恰當的使用 SQL 能減少資源請求。使用返回所需數據的最小值的查詢:避免 select * 查詢。一個返回小的數據子集的復雜查詢,比一個簡單的,返回超過所需的大量數據的簡單查詢更高效。
  
  ·  使你的查詢盡可能精巧,例如:盡可能精確地最小化要傳輸的數據,使其是所需的子集
  
  ·  努力批量更新:將 statement 收集到一起,然后在一個事務里面一起執行。假如可能,使用有條件的邏輯和臨時變量來達到 statement 批處理
  
  ·  永遠不要讓 DBMS 事務跨越用戶輸入
  
  ·  考慮使用樂觀鎖。樂觀鎖使用時間戳驗證數據是否還沒有被其他用戶改變,否則事務失敗
  
  ·  使用 恰當的更新,例如:更新行/表中已經存在的數據,而不要添加或者刪除行/表。在適當的位置更新數據要比移動數據快得多,假如更新需要的空間比表設計能提供的更多,這可能是需要的。假如你設計的行需要空間初始化,更新將會更快。交易是你的表可能需要更多的磁盤空間,但可能速度更快。由于磁盤空間是便宜的,使用一點點能提高性能,這應該說是非常有價值的投資
  
  ·  分開存儲正在操作的數據和歷史數據(更一般的情況是將頻繁使用的數據和不常使用的數據分開存儲)
  
  ·  盡可能小的保留你的操作數據集,避免必須讀那些不相關的數據
  
  ·  DBMS可以很好的并行運轉,盡量將應用設計成當和 DBMS交互時應用能做其他事情。
  
  ·  使用流水線操作和并行操作。 將應用設計成支持大量并行進程, 使應用運行更快。假如要處理多步,努力設計好應用,以使后來的步驟能夠在任何優先的進程已經完成的數據部分上開始工作,而不是必須等到優先進程完成
  
  · 事物的保護級別越高,性能損失就越大。事物級別按增長的順序為: TRANSACTION_NONE, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE。使用Connection.setTransactionIsolation() 設置你想要的事物級別
  
  · 默認的自動提交模式由于使每一個數據庫命令都成為一個單獨的事務,這會嚴重影響性能,關閉自動提交(Connection.setAutoCommit(false) ),明確聲明事務
  
  ·  通過整合多個事務為一個的批量操作,并在一個statement中使用Statement.addBatch() 和Statement.executeBatch()
  
  · Savepoints (from JDBC3.0)需要昂貴的資源。一旦不再需要,就馬上使用Connection.releaseSavepoint()釋放掉Savepoints
  
  ·  ConnectionPoolDataSource (from JDBC3.0)和PooledConnection接口為連接池提供了built-in支持
  
  · 使用setLogWriter() (from Driver, DataSource, or ConnectionPooledDataSource; from JDBC3.0) 幫助跟蹤JDBC流
  
  · 使用Connection.setReadOnly(true)優化只讀數據庫(操作)交互
  
  · 使用Connection.nativeSQL()察看SQL查詢如何在數據庫種執行,幫助確保SQL已被優化
  
  ·切記:一旦可能,馬上關閉Statement和ResultSet
  
  ·使用DatabaseMetaData獲得數據庫功能性信息
  
  ·一直捕捉和處理數據庫警告和異常
  
  ·使用最恰當的數據類型明確數據的類型,例如:以date類型存儲日期,兒不要用varchar
  
  ·使用可滾動ResultSet (JDBC 2.0)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看视频亚洲| 亚洲老板91色精品久久| 欧洲精品在线视频| 国产偷国产偷亚洲清高网站| 久久久国产视频91| 成人激情黄色网| 亚洲欧洲偷拍精品| 在线精品国产欧美| 日本高清视频一区| 久久精品成人欧美大片| 在线精品高清中文字幕| 国内揄拍国内精品| 国产一级揄自揄精品视频| 中文字幕综合在线| 亚洲网站在线播放| 日韩亚洲国产中文字幕| 欧美成人免费视频| 日韩成人在线观看| 日韩欧美在线国产| 亚洲国产日韩欧美在线99| 亚洲男人天堂网| 亚洲国产第一页| 亚洲国产精品专区久久| 在线播放日韩专区| 成人在线激情视频| 久久久久久久久久久91| 国产精品一区二区久久国产| 国产一区二区激情| 成人黄色av免费在线观看| 日韩亚洲欧美成人| 亚洲午夜色婷婷在线| 国产成人综合久久| 高清日韩电视剧大全免费播放在线观看| 日韩电影大片中文字幕| 中文字幕亚洲一区在线观看| 久久久久久美女| 亚洲自拍偷拍视频| 中文字幕一区二区三区电影| 日韩av日韩在线观看| 久久久久国产一区二区三区| xvideos成人免费中文版| 在线播放精品一区二区三区| 97在线免费观看视频| 国产高清视频一区三区| 国产精品国产亚洲伊人久久| 国产精品爽黄69| 高跟丝袜一区二区三区| 国产91精品久久久| 欧美精品少妇videofree| 在线播放亚洲激情| 亚洲欧美在线一区| 国语自产偷拍精品视频偷| 国产精品成人aaaaa网站| 国产午夜精品美女视频明星a级| 中文字幕亚洲欧美日韩高清| 亚洲国产天堂久久综合| 亚洲国产精品成人va在线观看| 欧美成人午夜免费视在线看片| 亚洲精品久久久久中文字幕欢迎你| 91久久嫩草影院一区二区| 欧美日韩国产精品| 欧美日韩福利视频| 亚洲系列中文字幕| 精品久久久91| 国产午夜精品视频| 播播国产欧美激情| 国产福利精品在线| 国产成人一区二区在线| 在线观看国产精品91| 性金发美女69hd大尺寸| 欧美性jizz18性欧美| 丰满岳妇乱一区二区三区| 欧美成人合集magnet| 中文字幕日韩在线播放| 精品中文字幕在线观看| 日韩在线免费高清视频| 亚洲国产精久久久久久| 亚洲国产美女精品久久久久∴| 插插插亚洲综合网| 97久久精品人搡人人玩| 久久久亚洲国产天美传媒修理工| 亚洲男人av在线| 欧美国产日韩一区二区在线观看| 91理论片午午论夜理片久久| 色综合天天狠天天透天天伊人| 国产精品99久久99久久久二8| 在线播放亚洲激情| 欧美色播在线播放| 欧美夫妻性生活xx| 久久影院资源网| 日韩精品免费在线视频| 久热99视频在线观看| 亚洲影院色在线观看免费| 亚洲欧美日韩精品久久奇米色影视| 亚洲字幕在线观看| 精品一区二区三区四区在线| 欧美日韩中文字幕在线视频| 亚洲激情自拍图| 亚洲欧美日韩中文视频| 亚洲一区二区三区成人在线视频精品| 久久久久在线观看| 色综合伊人色综合网站| 欧美视频一二三| 91国产美女视频| 精品久久久久久久久久久久久| 欧美精品videosex极品1| 国产欧美日韩精品在线观看| 中文字幕国内精品| 日韩av免费在线播放| 久久久噜久噜久久综合| 精品成人av一区| 国产精品久久中文| 欧美色道久久88综合亚洲精品| 九色成人免费视频| 亚洲男人天堂2019| 亚洲精品影视在线观看| 国产亚洲福利一区| 亚洲无限av看| 日韩视频免费看| 奇门遁甲1982国语版免费观看高清| 91成品人片a无限观看| 久久亚洲欧美日韩精品专区| 精品久久久久久久久中文字幕| 青青草精品毛片| 日本老师69xxx| 国产精品成久久久久三级| 国产精品久久97| 久久理论片午夜琪琪电影网| 久久久亚洲精品视频| 91久久久久久国产精品| 国内精久久久久久久久久人| 97免费视频在线播放| 欧美成人免费小视频| 欧美日韩精品在线视频| 性色av一区二区三区| 亚洲天堂第二页| 亚洲国产精品成人av| 中日韩美女免费视频网址在线观看| 97精品欧美一区二区三区| 亚洲精品不卡在线| 欧美性一区二区三区| 精品国产一区二区三区久久狼黑人| 国产精品亚洲视频在线观看| 国产精品久久久精品| 久久99久久99精品免观看粉嫩| 国模视频一区二区| 国产噜噜噜噜噜久久久久久久久| 亚洲午夜国产成人av电影男同| 久久香蕉国产线看观看av| 国产精品第七影院| 亚洲欧美另类自拍| 久久久这里只有精品视频| 亚洲精品欧美极品| 欧美日韩亚洲一区二区三区| 久久久久久久久久av| 久久亚洲综合国产精品99麻豆精品福利| 国产精品日本精品| 欧美成人免费全部观看天天性色| 欧美一级高清免费| 久久精品国产精品亚洲| 国产成人精品一区二区在线| 亚洲欧洲国产伦综合| 欧美另类极品videosbest最新版本| 亚洲人成在线观看|