【應用 業務】做資料庫技術支援的一點感悟
想不出什麼好標題,也不想做什麼標題黨。說說今天工作中遇到的問題吧!先總結一句:瞭解應用的DBA才是一名合格的DBA!
開發人員要求解決一條SQL 語句問題。即過濾自身,比如
id
1
2
3
4
點id=1的那行,顯示id in (2,3,4)的就對了
起初以為很簡單,寫了一條大致如下:
select * from t where not exists
(select 1 from t t1 where t1.id=:id
and t.id=t1.id)
這個是測試的語句,一個是笛卡爾乘積,一個是關聯查詢。嚴格的說要有效能上的考量().
SELECT
a.pk_equipdaliy,a.vbillstatus
FROM
ycam_equipdaliy a ,
ycam_equipdaliy b
WHERE
b.vbillstatus = 1
-- AND COALESCE (dr, 0) = 0
--AND a.pk_equipdaliy!=b.pk_equipdaliy
and a.pk_equipdaliy
SELECT
a.pk_equipdaliy, a.vbillstatus
FROM
ycam_equipdaliy a
WHERE
-- AND COALESCE (dr, 0) = 0
a.pk_equipdaliy in
(
SELECT
b.pk_equipdaliy
FROM
ycam_equipdaliy b
WHERE
b.vbillstatus = 1
AND a.pk_equipdaliy !=b.pk_equipdaliy
)
AND a.vbillstatus = 1
兩條在資料庫裡面跑時,都能得到正確的結果,但是當寫到應用層,由java程式碼呼叫時,結果卻一直報錯。
判斷sql本身沒有問題,在開發執行除錯狀態時,同時在執行上述sql 語句時,發現表被鎖住了。於是一步一步除錯,除錯到執行sql獲取結果集時,問題出現了,sql語句所查詢的表的一個欄位 vbillstatus被修改由原來的3變為1。導致執行上述sql時,資料一致性遭到了破壞。於是梳理業務應用和業務邏輯。底層的程式碼的確在 “稽核” 這一步,就把欄位值修改了!最後只能透過應用程式而不是sql語句來解決問題。
總結一下:今天花了半天的時間來處理這個問題,最終解決了!對於資料庫技術上沒有什麼收穫,但是感悟是:作為一個行業軟體的服務供應商的資料庫技術支援,一定要了解應用,瞭解業務流程。這樣才能準確而快速的定位問題的所在,進而更快的解決資料庫問題。
附上蓋國強大師對DBA 七點建議:
1.實時監控資料庫告警日誌
這是必須進行的工作,並且應該根據不同的嚴重級別,傳送不同級別的告警,及時瞭解資料庫的變化與告警。
2.實時監控資料庫的重要統計資訊
實施監控對於資料庫執行至關重要、能夠表徵資料庫重要變化的統計資訊,並且據此傳送報警資訊。那麼應當監控哪些統計資訊呢?大家可以思考一下,對於單機、RAC環境各不相同。
3.部署自動的Statspack/AWR報告生成機制
每天檢查前日的AWR報告,熟悉資料庫的執行狀況,做到對於資料庫瞭如指掌
4.每天至少最佳化和熟悉一個Top SQL
根據AWR或Statspack報告,每天至少了解或熟悉一個Top SQL,能最佳化的要提出最佳化和調整建議
5.部署完善的監控和資料取樣系統
DBA應該對資料庫部署完善的監控系統,並對重要資訊進行取樣,能夠實時或定期生成資料庫重要指標的曲線圖,展現資料庫的執行趨勢。
6.全面深入的瞭解應用架構
不瞭解應用的DBA是沒有前途的DBA,對應用瞭解不深入的DBA算不上Expert,所以一定要深入瞭解應用。
7.撰寫系統架構、現狀、調整備忘錄
根據對資料庫的研究和了解,不斷記錄資料庫的狀況,撰寫資料庫架構、現狀及調整備忘錄,不放過任何可能的最佳化與改進的機會。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-674412/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於技術分享的一點感悟
- 探秘資料庫中的平行計算技術應用資料庫
- 大型Electron應用本地資料庫技術選型資料庫
- 淺談資料庫防火牆技術及應用資料庫防火牆
- 資料庫技術方案與業務場景的深入融合資料庫
- LLVM技術在GaussDB等資料庫中的應用LVM資料庫
- 新技術應用也應與業務匹配
- 謹慎做資料庫技術的標準化(轉)資料庫
- ERP的12點應用感悟(轉)
- Java技術在多資料庫系統中的應用研究Java資料庫
- Java技術之掌握資料庫連線工具DBUtils的應用Java資料庫
- 大資料技術在電商的應用大資料
- 作為面試官的一點點感悟,談談技術人的成長之路面試
- 崑崙分散式資料庫技術特點分散式資料庫
- 大資料技術原理與應用大資料
- Oracle技術支援是如何分析資料庫效能問題的Oracle資料庫
- 快應用技術架構及業務分析架構
- GPU在AI業務中的核心技術與應用GPUAI
- 關於大資料技術的一點思考大資料
- Mysql資料庫應用(一)MySql資料庫
- Oracle ADW業務資料平臺點亮DTCC2019資料庫技術大會!Oracle資料庫
- 從技術走向管理的一些感悟
- 資料加密新技術-實時雲渲染技術應用加密
- 大資料建模、分析、挖掘技術應用大資料
- 資料探勘技術在軌跡資料上的應用實踐
- Delphi 技術的優缺點與應用
- 大資料技術原理與應用——大資料概述大資料
- 資料庫應用優化(一)資料庫優化
- JethroData:又一個新的資料庫分析技術資料庫
- MySQL Binlog 技術原理和業務應用案例分析MySql
- 電子技術應用專業資料全集
- 產品資料管理(PDM)技術與應用
- 關於大資料的建模、分析、挖掘技術應用大資料
- 大資料處理的關鍵技術及應用大資料
- 應該做技術還是應該做管理?
- FinClip一點感悟:我做 ToB 市場這些年
- 技術支援在大資料分析中的作用大資料
- 七、資料庫技術的發展及新技術資料庫