回答

收藏

SQL的DELETE语句是否真正删除数据?

技术问答 技术问答 176 人阅读 | 0 人回复 | 2023-09-12

故事    :今天,我们的一位客户问我们他在程序中删除的所有数据是否无法恢复。
3 X; F" X% S, ]  W$ _- J- y除了计划的备份,我们每天缩小一次日志文件,然后使用它DELETE在需要的地方删除表中的记录。
% e& {, I% ^$ c% Q( h9 i然而,出于这个目的,我使用了编辑器(使用了)PSPad)打开了.mdf在表中搜索了一个特定的唯一数据段(我确定是)。1 [  L: Z; T% z8 I, J
问题    :我在文件中跟踪它,然后执行它DELETE命令,它仍然存在。/ u$ W2 T8 F: o7 ]7 p1 i/ {
问题    :磁盘上的物理记录是否有我们不知道的具体命令?# y( `3 q' M- m6 d9 T# D1 z
注:我们知道有一些特殊的技术可以从硬盘驱动器中恢复丢失的数据,但我想说的是记事本!
4 D# z1 J: B7 @" s                                                               
, N6 Y, k4 u$ G/ m5 \* _    解决方案:                                                                . c" U' _! g* C/ {8 V' C% I3 [
                                                                文本可能仍然存在,但是SQL Server没有任何结构或可用数据的概念。
# ]; C2 K$ q, q! F% P6 G" w& z# w简单释放释放空间:不删除、压缩或清除。  U, k) T1 h+ s8 z* a! B# Q
即时文件初始化的功能也依赖于此(不会整个MDF以前的磁盘数据仍可用于全新的数据库:
, g7 }; C3 y. x! B0 H: h) ^由于删除的磁盘内容只在将新数据写入文件时才被覆盖,未经授权的主体可以访问删除的内容。* F$ `( A/ @( T. a$ W9 Q( R0 G+ i
编辑:回收空间:9 [+ o9 ~; F4 Q( D! e& s+ V  m
ALTER INDEX …重建是最好的方法0 D5 R- {9 l" j1 R: A
使用DBCC SHRINKFILE NOTRUNCATE可将页面压缩到导致重新分配的页面空白中,但不会收回空间 在    删除页面的行
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则