
正文
sqlserver删除表后空间未变,sql删除表后,仍存在于数据库中
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
数据库数据都被删掉了,为什么大小没变,你知道原因啊
1、是这个样子的,因为数据库分配空间的原理,比如我又1万条,大小100M,如果删除后,数据库空间大小几乎不变,因为空间没有释放,如果有新的记录加入,他们会首先填充这些空的空间,直到超过1万行,再增加。
2、这是因为删除操作后在数据文件中留下碎片所致。DELETE只是将数据标识位删除,并没有整理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间。另外实际操作过程中还发现这个问题还存在两种情况。(1)当DELETE后面跟条件的时候,则就会出现这个问题。
3、数据是存放在数据文件中的,不是直接写在物理硬盘上,数据文件是无法自动缩小的,分配了多大就是多大,用下面的sql可以查出表空间的具体使用情况,删了大量数据后应该有一个或几个表空间出现大量空闲。数据库是“按照数据结构来组织、存储和管理数据的仓库”。
相关问答
Q1: oracle删除数据,数据文件不变,存储数据会继续增大数据文件还是使用已...
如果使用率已经达到或者接近90%,可以将这个用户的相关数据全部删除,然后用imp exp导出全库,删除这个数据文件并新建,然后将数据导入新的表空间。
自动增长,是表空间不足的时候,自动增加数据文件的大小,这时oracle会把相应大小的磁盘分配给表空间,每次增加的大小由dba建立数据文件时的命令来指定。
数据是存放在数据文件中的,不是直接写在物理硬盘上,数据文件是无法自动缩小的,分配了多大就是多大,用下面的sql可以查出表空间的具体使用情况,删了大量数据后应该有一个或几个表空间出现大量空闲。数据库是“按照数据结构来组织、存储和管理数据的仓库”。
表空间会随着包含的表内容增加而增大,但是不会随着table删除而减小。如果要增加剩余空间,需要先drop table ,再drop tablespace。select name from v$tablespace; 可以看oracle包含哪些tablespaceselect TABLESPACE_NAME, file_name from dba_data_files;可以查看tablespace对应的dbf文件。
使用: truncate table tablename DROP STORAGE;解释: 直接删除表,并且释放存储空间。truncate的意思是清空表数据, “DROP STORAGE”是释放存储空间。
Q2: 删除数据库中的一个表后,为什么磁盘空间没有减少?
原因是mongodb设计的本身机制问题造成的。首先,mongodb在创建数据文件时,会根据64M,128M,256M...递增的方式产生数据文件,最大数据文件为2G,增大到2G之后,后面新增的数据文件都占用2G空间。
sp_resetstatus。否则,可能会损坏数据库。由于该过程修改了系统表,系统管理员必须在运行 sp_resetstatus这个过程前,启用系统表更新。
首先对于硬盘所删除的文件来说,一般也都是可以进行修复的,但是在文件修复之前,需要保证所删 除的文件没有被覆盖丢失,一旦数据出现覆盖丢失的话, 那么也都无法找回丢失文件。不管是哪种原 因造成数据丢失或损坏,首先也就需要及时停止对都是数据的硬盘进行扫描和读写,避免文件出现覆 盖丢失的现象。
Q3: oracle数据库中table的空间在delete后为什么没有收回
使用delete删除数据后,表空间不会回收,存在高水位 High Water Mark,HWM) 是Oracle(Segment)级别的概念。在仅有DML(比如delete,insert)操作时,高水位线只会增长,不会降低。具体来说,由于程序使用的delete语句不回收使用过的空间,数据虽然删除了,但是高水位线却没有降低,仍然处于之前的水位。
tables是存储某个tablespace(表空间)里面的,tablespaces可以包含多个dbf文件,你在硬盘里面可以查到dbf文件。表空间会随着包含的表内容增加而增大,但是不会随着table删除而减小。如果要增加剩余空间,需要先drop table ,再drop tablespace。
Oracle的数据库表被删除后,不会自动讲空间释放掉。
执行表重建指令 alter table table_name move;(在线转移表空间ALTER TABLE 。。 MOVE TABLESPACE 。。ALTER TABLE 。。 MOVE 后面不跟参数也行,不跟参数表还是在原来的表空间,move后记住重建索引。
你是用drop命令删除的吗?drop命令是不回收表空间的,只是吧表对应的记录从数据字典中抹掉,也不会回收高水位。
Q4: 请问一下,我把SQLSERVER2000中和一张表删除了,为什么数据库的大小没有...
释放磁盘空间并且重新运行恢复操作,按照下面的步骤收缩日志。sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。
数据文件不会自动收缩的,你如果想把数据文件变小,就需要使用收缩功能。
不是的。这个是因为你数据库的数据虽然删除了。但是数据库的体积并没有减少多少。
索引空间和数据空间中可以看出2个库中表占用空间的差异。
首先看看此数据库下是否还有其他表有大量数据,如果没有是否由于以前存在大量数据,在删除之后,没有清除日志呢,收缩下日志,再把数据库备份一下,看看备份文件是否明显变小。
到控制面版里“添加与删除”,找到SQL 2000删除。 找到以下注册表项,删除 找到并删除 %drive%:\Program Files\Microsoft SQL Server\MSSQL\Binn 文件夹。
Q5: sql数据库我把表删除了,为什么数据库文件还是那么大?请问怎么才能彻底把...
1、释放磁盘空间并且重新运行恢复操作,按照下面的步骤收缩日志。sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。
2、如果你删除的数据少的话,文件上应该体现不出来大小,如果数据删除的较多,就很明显了 试试就知道了。
3、sql server 2008卸载ing...卸载完成,第一步告一段落...删除sql数据库相关文件夹 一般大家默认是安装在c盘,如果是安装在其他盘符,c盘也可能会有相关数据文件。
4、SQL Server文件夹删除掉,再找到相对应的数据文件夹MSSQL进行删除。第二,注册表信息的删除。【开始】-【运行】-输入regedit,点开HKEY_LOCAL_MACHINE-software-microsoft,找到microsoft SQL Server和MSSQLServer,如下:右击这两个文件选择删除,关闭注册表,然后重新启动电脑就可以了。
5、删除数据是不会收缩文件的物理空间的。删除数据后的空闲空间,将会留给以后数据增长时使用。如果想要收缩文件的物理空间大小,可以使用收缩数据库和收缩文件。对应是DBCC SHRINKDB和DBCC SHRINKFILE两个命令,具体使用方法请见联机丛书。
6、用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
关于sqlserver删除表后空间未变和sql删除表后,仍存在于数据库中的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







