SQL Server數(shù)據(jù)庫對大數(shù)據(jù)量表數(shù)據(jù)進(jìn)行DELETE
此文章主要向大家講述的是SQL Server數(shù)據(jù)庫對大數(shù)據(jù)量表數(shù)據(jù)進(jìn)行 DELETE 時易產(chǎn)生操作超時的這一問題的具體解決,使用的是SQL2000數(shù)據(jù)庫,編寫了一個C#的應(yīng)用程序,其中一個功能就是清空指定表的全部數(shù)據(jù)。
一個奇怪的現(xiàn)象直到今天才被發(fā)現(xiàn),那就是當(dāng)這個表的數(shù)據(jù)的容量非常大的時候,我遇到的情況是該表內(nèi)包含5800條數(shù)據(jù),但是數(shù)據(jù)的總?cè)萘?/p>
使用的是SQL2000數(shù)據(jù)庫,編寫了一個C#的應(yīng)用程序,其中一個功能就是清空指定表的全部數(shù)據(jù),一個奇怪的現(xiàn)象直到今天才被發(fā)現(xiàn),那就是當(dāng)這個表的數(shù)據(jù)的容量非常大的時候,我遇到的情況是該表內(nèi)包含5800條數(shù)據(jù),但是數(shù)據(jù)的總?cè)萘看笥?G,當(dāng)程序調(diào)用SQL語句“DELETE FROM TABLE”時,再等待了20秒左右后,提示“數(shù)據(jù)庫操作超時,ODBC執(zhí)行超時”,然后我分別嘗試刪除其中的3000條和2000條數(shù)據(jù),但是同樣是一樣的超時。
這個結(jié)論是無論我使用的是企業(yè)管理器,還是查詢分析器,還是通過應(yīng)用程序進(jìn)行操作,都是一樣的結(jié)果,***發(fā)現(xiàn),當(dāng)每次刪除的數(shù)據(jù)量小的一定程度時候,操作就不會發(fā)生超時的情況,我選擇的是1000條數(shù)據(jù),根據(jù)情況來看,數(shù)據(jù)容量應(yīng)該為500M左右。
在網(wǎng)絡(luò)上查了一下,發(fā)現(xiàn)很少有人遇到這樣的因?yàn)槿萘慷瑫r的情況,多數(shù)是因?yàn)閿?shù)據(jù)的條數(shù)巨大(不過個人覺得似乎和容量大小也有關(guān)系吧),暫時沒有查到這是不是sql的一個限制,因?yàn)樵谄髽I(yè)管理器和查詢分析器中都已經(jīng)將查詢超時設(shè)置為0,但是這個沒有起任何作用,如果大家遇到相同的問題,這里只是給一個大概的情況記錄,原因繼續(xù)調(diào)查中……
上述的相關(guān)內(nèi)容就是對SQL Server數(shù)據(jù)庫對大數(shù)據(jù)量表數(shù)據(jù)進(jìn)行DELETE時易發(fā)的描述,希望會給你帶來一些幫助在此方面。
上述的相關(guān)內(nèi)容就是對SQL Server數(shù)據(jù)庫對大數(shù)據(jù)量表數(shù)據(jù)進(jìn)行DELETE時易發(fā)的描述,希望會給你帶來一些幫助在此方面。
【編輯推薦】