自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL查詢優(yōu)化實例:銀行校園卡繳費的性能優(yōu)化

數(shù)據(jù)庫 SQL Server
本文我們通過某銀行校園卡繳費的性能測試來介紹一下在開發(fā)應(yīng)用程序時設(shè)計SQL查詢優(yōu)化的一些思路,希望能夠?qū)δ兴鶐椭?/div>

在開發(fā)應(yīng)用程序時,如果SQL查詢優(yōu)化的語句設(shè)計得不好,可能就會很嚴(yán)重地影響到應(yīng)用程序的性能。因此我們在開發(fā)應(yīng)用程序時,一定要慎用SQL的查詢語句,盡可能地把SQL查詢優(yōu)化做到***。

本文我們通過一個實例來告訴大家在開發(fā)應(yīng)用程序及執(zhí)行SQL查詢優(yōu)化語句時的一些思路,實例如下:在某銀行做校園卡繳費的測試過程中,發(fā)現(xiàn)成功繳費時間很長,大約需要75秒左右,原因分析:在做校園卡繳費的時候,首先是從數(shù)據(jù)庫中查詢到需要繳費的費項,然后再對該費項進(jìn)行繳費,繳費成功后修改相應(yīng)的狀態(tài),交易完成后,查看日志,發(fā)現(xiàn)下面的查詢語句執(zhí)行時間很長,在數(shù)據(jù)庫中執(zhí)行時間大約74.516秒,可見幾乎所有的時間都花在查詢上。

 

  1. select b.stu_id, b.term_id, b.cost_code  
  2.  
  3. from bib_booking_student_info a, bib_booking_fee_info b  
  4.  
  5. where a.busi_id = b.busi_id  
  6.  
  7. and a.corp_id = b.corp_id  
  8.  
  9. and a.term_id = b.term_id  
  10.  
  11. and a.stu_id = b.stu_id  
  12.  
  13. and b.stu_stat = '0' 
  14.  
  15. and a.busi_id = '100104' 
  16.  
  17. and a.corp_id = 'E000000059' 
  18.  
  19. and a.term_id = '0101' 
  20.  
  21. and a.stu_id = '59000030'

 

解決辦法,優(yōu)化此SQL語句(說實話,這個SQL寫得真不好,只是實現(xiàn)了功能,完全沒有考慮性能,尤其當(dāng)數(shù)據(jù)庫大的時候),下面是優(yōu)化后的SQL語句:

 

  1. select b.stu_id, b.term_id, b.cost_code  
  2.  
  3. from bib_booking_fee_info b  
  4.  
  5. where b.stu_stat = '0' 
  6.  
  7. and exists( select 1 from bib_booking_student_info a where  
  8.  
  9. a.corp_id = b.corp_id  
  10.  
  11. and a.term_id = b.term_id  
  12.  
  13. and a.stu_id = b.stu_id  
  14.  
  15. and a.busi_id = b.busi_id  
  16.  
  17. and a.busi_id = '100104' 
  18.  
  19. and a.corp_id = 'E000000059' 
  20.  
  21. and a.term_id = '0101' 
  22.  
  23. and a.stu_id = '59000030' 
  24.  

此語句執(zhí)行時間只有0.219秒,快了很多很多。

總結(jié):在類似于這種交易,先查詢再繳費(改變字段狀態(tài))的交易,執(zhí)行查詢時間的多少直接影響到此交易的性能。假如只是做插入,不做查詢的交易,這種交易一般都很快,有查詢,然后再繳費(改變字段狀態(tài))的交易,如果響應(yīng)時間很慢,那需要在查詢SQL語句上進(jìn)行優(yōu)化了。

關(guān)于SQL查詢優(yōu)化的知識就介紹這么多,希望能夠帶給您一些收獲吧!

【編輯推薦】

  1. 談一談Oracle WDP計劃和Oracle認(rèn)證
  2. 關(guān)于Oracle利用UTL_INADDR注入的簡單介紹
  3. 登陸Oracle 10g控制臺時提示IO失常錯誤的解決方案
  4. Oracle數(shù)據(jù)庫中各種類型的文件損壞與修復(fù)過程詳解
  5. 簡單介紹一下Oracle ERP上線后的迅捷管教和新功能
責(zé)任編輯:趙鵬 來源: CSDN博客
相關(guān)推薦

2021-06-10 09:40:12

C++性能優(yōu)化Linux

2018-06-07 08:54:01

MySQL性能優(yōu)化索引

2010-10-21 10:56:29

SQL Server查

2010-10-21 11:10:57

SQL Server查

2010-10-14 16:27:56

MySQL隨機查詢

2018-01-09 16:56:32

數(shù)據(jù)庫OracleSQL優(yōu)化

2016-12-15 09:58:26

優(yōu)化SQL高性能

2017-07-12 13:04:23

數(shù)據(jù)庫SQL查詢執(zhí)行計劃

2021-07-16 23:01:03

SQL索引性能

2023-07-12 08:55:16

PawSQL數(shù)據(jù)庫

2023-09-25 13:15:50

SQL數(shù)據(jù)庫

2021-07-26 18:23:23

SQL策略優(yōu)化

2011-08-18 09:19:19

SQL Server的SQL查詢優(yōu)化

2018-09-11 08:40:00

前端JavaScriptt性能優(yōu)化

2025-01-20 08:00:00

AISQL Server數(shù)據(jù)庫

2010-07-01 14:23:25

SQL Server查

2020-11-23 10:50:27

MySQLSQL數(shù)據(jù)庫

2018-03-30 14:30:10

數(shù)據(jù)庫SQL語句性能優(yōu)化

2023-11-15 16:35:31

SQL數(shù)據(jù)庫

2013-09-22 10:25:23

MySQLSQL性能優(yōu)化
點贊
收藏

51CTO技術(shù)棧公眾號