一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 如何在SQLSERVER中快速有條件刪除海量數據

如何在SQLSERVER中快速有條件刪除海量數據

2019-10-22 12:03mssql教程網 Sql Server

如何在SQLSERVER中快速有條件刪除海量數據

1.SQLSERVER數據庫改bit類型為notBoolean(即,true改成false;false改成true)

例:update表setbit字段=bit字段-1

最近有個朋友問我,他說他在SQLSERVER刪除幾百萬到幾千萬數據是顯的很慢,幫他分析了一下,提了一些以下意見,或許對很多人有用,再者也好長沒寫過BLOG了,一起探討一下

如果你的硬盤空間小,并且不想設置數據庫的日志為最小(因為希望其他正常的日志希望仍然記錄),而且對速度要求比較高,并清除所有的數據建議你用turncatetable1,因為truncate是DDL操作,不產生rollback,不寫日志速度快一些,然后如果有自增的話,恢復到1開始,而delete會產生rollback,如果刪除大數據量的表速度會很慢,同時會占用很多的rollbacksegments,同時還要記錄下G級別的日志;當然如果有條件刪除比如wheretime<'2006-3-10'怎么辦,能不能不記錄日志用delete,回答是不行的,SQLServer引擎在設計上就會對Delete操作進行日志記錄。至今沒有辦法強制制定某一些語句不記錄到日志中,如果在執行DeleteTable1whereTime<'2006-3-10'由于涉及的記錄比較多,所以日志記錄也相應很大(3-4G),如果可行,我建議用以下方式:

選出您所需要保留的記錄到新的表。如果您使用FullRecoveryMode

根據SelectINTO的記錄數,日志可能會比較大

Select*intoTable2FromTable1WhereTime>='2006-03-10'

然后直接TruncateTable1。無論何種恢復模式都不會進行日志記錄

TruncatetableTable1

最后對Table2進行改名為Table1

ECsp_rename'Table2','Table1'

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产自在天天线2019 | 国产成人精品午夜视频' | 美女张开腿黄网站免费精品动漫 | 国产精品香蕉 | 無码一区中文字幕少妇熟女网站 | 9191免费永久观看 | 韩国三级日本三级香港三级黄 | 大陆男男gayxxxxvideo | 日韩欧美国产综合精品 | 99re7在线精品免费视频 | 日本videohd18| 久久99热在线观看7 久久99精品涩AV毛片观看 | 久久99国产视频 | 亚洲精品国产精麻豆久久99 | 帅小伙和警官同性3p | 69人成网站色www | www.一级片.com | 肉文高h文 | 99久久99久久久精品齐齐鬼色 | 40分钟在线观看免费 | 色偷偷影院 | 亚洲入口 | leslessexvideos日本 | 亚洲国产成人在线 | 500第一精品| 天天做天天爰夜夜爽 | 办公室恋情在线观看 | 万域之王在线观看 | 调教女警花穿环上班 | 2022超帅男同gayxxx | 四虎影院新地址 | 色综合伊人色综合网亚洲欧洲 | 青青青在线观看国产精品 | 精品日韩欧美一区二区三区 | 日本成日本片人免费 | 无敌秦墨漫画免费阅读 | 精品成人一区二区三区免费视频 | 国产一区日韩二区欧美三区 | 天天白天天谢天天啦 | 亚洲国产精品综合福利专区 | 日本无吗免费一二区 |