一條select語句引起的瓶頸問題思考
更新時(shí)間:2013年02月27日 23:01:12 作者:
公司一項(xiàng)目新上線,剛上線的第2天,在后臺(tái)發(fā)現(xiàn)數(shù)據(jù)庫服務(wù)器與IIS服務(wù)器的網(wǎng)絡(luò)IO出現(xiàn)瓶頸,1GB的網(wǎng)絡(luò)帶寬,占用了70%-100%,也就是每秒傳輸數(shù)據(jù)700MB-1GB,數(shù)據(jù)庫使用內(nèi)存高達(dá)21GB
情境還原:
公司一項(xiàng)目新上線,剛上線的第2天,在后臺(tái)發(fā)現(xiàn)數(shù)據(jù)庫服務(wù)器與IIS服務(wù)器的網(wǎng)絡(luò)IO出現(xiàn)瓶頸,1GB的網(wǎng)絡(luò)帶寬,占用了70%-100%,也就是每秒傳輸數(shù)據(jù)700MB-1GB,數(shù)據(jù)庫使用內(nèi)存高達(dá)21GB。
IIS服務(wù)器CPU使用率時(shí)常爆至80%-90%,導(dǎo)致網(wǎng)站頻頻出現(xiàn)連接超時(shí)。
原因:晚上只好暫時(shí)關(guān)閉網(wǎng)站,進(jìn)行服務(wù)器維護(hù),作全面的檢查跟蹤,發(fā)現(xiàn)是一句Select語句導(dǎo)致:
Select * From Table1
這條語句,語法是沒問題的,但在應(yīng)用上出了問題。Table1存儲(chǔ)的是10多萬行數(shù)據(jù),表數(shù)據(jù)每天都會(huì)上萬的增長(zhǎng)。
為了統(tǒng)計(jì)總行數(shù),頻頻調(diào)用這語句,每秒刷新不低于1000次。
也因此導(dǎo)致網(wǎng)絡(luò)出現(xiàn)瓶頸。
解決:后面把Select語句改成
Select Count(*) from Table1
即可解決問題,網(wǎng)絡(luò) IO數(shù)據(jù)馬上降至10MB以下,數(shù)據(jù)庫使用內(nèi)存也保持在預(yù)計(jì)范圍12GB。
看似非常簡(jiǎn)單的問題,其實(shí)不然。解決這問題,所花的時(shí)間周期是6小時(shí),檢查問題使用1小時(shí),修改代碼使用5小時(shí)。
公司一項(xiàng)目新上線,剛上線的第2天,在后臺(tái)發(fā)現(xiàn)數(shù)據(jù)庫服務(wù)器與IIS服務(wù)器的網(wǎng)絡(luò)IO出現(xiàn)瓶頸,1GB的網(wǎng)絡(luò)帶寬,占用了70%-100%,也就是每秒傳輸數(shù)據(jù)700MB-1GB,數(shù)據(jù)庫使用內(nèi)存高達(dá)21GB。
IIS服務(wù)器CPU使用率時(shí)常爆至80%-90%,導(dǎo)致網(wǎng)站頻頻出現(xiàn)連接超時(shí)。
原因:晚上只好暫時(shí)關(guān)閉網(wǎng)站,進(jìn)行服務(wù)器維護(hù),作全面的檢查跟蹤,發(fā)現(xiàn)是一句Select語句導(dǎo)致:
Select * From Table1
這條語句,語法是沒問題的,但在應(yīng)用上出了問題。Table1存儲(chǔ)的是10多萬行數(shù)據(jù),表數(shù)據(jù)每天都會(huì)上萬的增長(zhǎng)。
為了統(tǒng)計(jì)總行數(shù),頻頻調(diào)用這語句,每秒刷新不低于1000次。
也因此導(dǎo)致網(wǎng)絡(luò)出現(xiàn)瓶頸。
解決:后面把Select語句改成
復(fù)制代碼 代碼如下:
Select Count(*) from Table1
即可解決問題,網(wǎng)絡(luò) IO數(shù)據(jù)馬上降至10MB以下,數(shù)據(jù)庫使用內(nèi)存也保持在預(yù)計(jì)范圍12GB。
看似非常簡(jiǎn)單的問題,其實(shí)不然。解決這問題,所花的時(shí)間周期是6小時(shí),檢查問題使用1小時(shí),修改代碼使用5小時(shí)。
相關(guān)文章
MSSQL 2000 使用幫助(sql server簡(jiǎn)明教程)
這篇文章主要介紹了MSSQL 2000 使用幫助(sql server簡(jiǎn)明教程),需要的朋友可以參考下2017-04-04SQLserver2019?Express安裝及其一些問題解決
本文主要介紹了SQL?server?2019?Express?安裝及其一些問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04SQL數(shù)據(jù)庫連接超時(shí)時(shí)間已到的問題
這篇文章主要介紹了SQL數(shù)據(jù)庫連接超時(shí)時(shí)間已到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04sql server刪除前1000行數(shù)據(jù)的方法實(shí)例
最近處理數(shù)據(jù)的時(shí)候遇到了個(gè)問題,需要利用sql刪除表格的前1000行數(shù)據(jù),嘗試過后這里給大家分享下過程,所以下面這篇文章主要給大家介紹了關(guān)于sql server刪除前1000行數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2021-08-08數(shù)據(jù)庫日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(1)
下面小編就為大家?guī)硪黄獢?shù)據(jù)庫基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07sql中的 where 、group by 和 having 用法解析
這篇文章主要介紹了sql中的 where 、group by 和 having 用法解析,需要的朋友可以參考下2017-04-04