精华内容
下载资源
问答
  • 对于sqlserver存在这样的问题,日志文件大小、数据文件大小都会不断的生长,就算我们清楚掉数据表和数据,磁盘的大小还是被占用,不能够及时释放空间,这样就造成磁盘空间不断生长的问题。 下面对于日志的空间问题...
       对于sqlserver存在这样的问题,日志文件大小、数据文件大小都会不断的生长,就算我们清楚掉数据表和数据,磁盘的大小还是被占用,不能够及时释放空间,这样就造成磁盘空间不断生长的问题。
      下面对于日志的空间问题,我的另一篇博客已经介绍了,可以进行设置。
      下面我主要介绍的是在对于数据量较大的表释放空间,因为使用到了分区,对一个表进行了分300多个分区,所以每天产生的数据量很大,要定时去清楚表的数据,在清空数据的同时,也要释放未使用的空间。
      话不多说,直接上干货:
      1、根据查询语句 select * from sysfiles, 查询所有的文件信息,上面有文件id、文件大小、文件名称等等信息
      2、根据需要释放空间的文件找到对于的id执行语句,4表示文件Id号
        DBCC SHRINKFILE(4) 
    

    执行完了之后,再去看文件的大小就会恢复到初建的大小

    方法2:
    当然,如果想要直接释放也可以,但是前提是你需要知道文件的名字,直接执行语句
    DBCC SHRINKFILE(‘FileName’, 1 , TRUNCATEONLY )
    也可以直接释放。
    具体函数 DBCC SHRINKFILE的参数定义,大家可以自己在网上查询,这里不再详细介绍

    展开全文
  • 秉承中华民族勤俭节约的美德,这种是不允许的,必须要释放日志文件霸占的多余空间。  但是,无论怎么收缩(Shrink)日志文件,空间是不能释放,总是出现错误: Cannot shrink log file 2 (CNBlogsText_log) ...
  • sql server tempdb 空间释放

    千次阅读 2016-02-16 14:15:07
    tempdb是SQL Server的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一...
    展开全文
  • 但是,采用了很多办法才释放掉表空间,主要是系统中大量使用分区表,而针对分区表清除数据,不会释放空间,必须把分区drop掉,才会释放空间。记录一下当时操作时学习和使用的一些语句: 一、drop表 执行drop ...

    前些日子,数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G。但是,采用了很多办法才释放掉表空间,主要是系统中大量使用分区表,而针对分区表清除数据,不会释放表空间,必须把分区drop掉,才会释放空间。记录一下当时操作时学习和使用的一些语句:

    一、drop表

    执行drop table xx 语句

        drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。

        通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句

                       flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];

                       将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。

                       若要彻底删除表,则使用语句:drop table <table_name> purge;

                       清除回收站里的信息

                       清除指定表:purge table <table_name>;

                       清除当前用户的回收站:purge recyclebin;

                       清除所有用户的回收站:purge dba_recyclebin;

        不放入回收站,直接删除则是:drop table xx purge;

    举例如下:

    ===============================================================================

    SQL> select * from test1;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> create table test2 as select * from test1;

    Table created

    SQL> select * from test2;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> drop table test2;

    Table dropped

    SQL> select object_name, original_name, operation, type from user_recyclebin;

    OBJECT_NAME ORIGINAL_NAME OPERATION TYPE

    ------------------------------ -------------------------------- --------- -------------------------

    BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE

    SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名

    Done

    SQL> select * from test3;

    A B C

    -- -- ----------

    11 5

    11 10  

    2 rows selected

    SQL> select * from test2

    ORA-00942: 表或视图不存在

    --彻底删除表

    SQL> drop table test3 purge;

    Table dropped

    二、清除表中的数据

    truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。

    例如:truncate table  XX

    Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

    truncate table 后,有可能表空间仍没有释放,可以使用如下语句:

    alter table 表名称 deallocate   UNUSED KEEP 0;

    注意如果不加KEEP 0的话,表空间是不会释放的。

    例如:

    alter table F_MINUTE_TD_NET_FHO_B7 deallocate   UNUSED KEEP 0;

    或者:

    TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。

    例如: truncate table  test1 DROP STORAGE;

    三、查询分区表存在哪些分区:

    查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:

        select 'alter table '||t.table_name ||' truncate   partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'

        清除指定某个分区表的分区数据:

        alter   table  表名称   truncate   partition   分区名称;

    四、清除分区表占用的空间:

    alter table 表名称  DROP    partition 分区名称;

        例如:

        alter table F_HOUR_TD_NET_MPVOICE  DROP    partition P_09121913         ;

    五、查询表空间信息

        可以利用如下语句查询各表在存储空间的使用分情况:

        SELECT  TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999')   CNT_MB   FROM   DBA_EXTENTS   WHERE  OWNER='&OWNER'   AND   SEGMENT_NAME='&TABLE_NAME'   AND   SEGMENT_TYPE   LIKE   'TABLE%'   GROUP   BY  TABLESPACE_NAME;

    可以使用如下语句,查询存储空间情况:

    Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name

    六、查询用户下的表

        如果你的用户权限不是DBA:  

      那你用  

      select   *   from   user_tables;  

      可以查询到当前用户所拥有的表。  

      如果是DBA用户:  

      select   *   from   dba_tables;

    展开全文
  • 删除表数据,释放空间sql语句

    千次阅读 2019-01-24 10:07:57
    truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。...

    truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。

    展开全文
  • sqlserver 删除表数据并释放磁盘空间

    千次阅读 2013-01-08 09:55:42
    delete from TheTable with(TABLOCK) where answerTime between @DataTime3 and @DataTime4 ...-------释放磁盘空间------------  declare @table nvarchar(50),@fileid int set @table = 'MyDB' set @fileid =
  • sqlserver内存释放

    2014-05-13 10:45:01
    sqlserver 内存释放
  • 查了下原因,根本原因是删除数据并不释放空间,日志文件太过巨大的原因。 网上查了查,解决方案如下: 第一步, 在收缩前先查看日志的大小: SELECT * FROM sysfiles WHERE name LIKE '%LOG%' GO ...
  • 命令释放SQL Server占用的内存

    千次阅读 2019-02-27 17:24:10
    SQL Server 占用的内存不会自动释放,可以通过设置最大内存的方式手动释放   --强制释放内存 CREATE procedure [dbo].ClearMemory as begin --清除所有缓存 DBCC DROPCLEANBUFFERS --打开高级配置 exec sp...
  • SQL Server 空间管理——表空间

    千次阅读 2018-03-09 17:36:59
    SQL Server 中表使用空间查询 一、查询指定表空间使用情况 脚本1 use WideWorldImportersDW go sp_spaceused Workload 二、查询库下默认架构所有表空间使用情况 循环对每个表名使用sp_spaceused 即可获取,...
  • sql server 清空表后 释放空间语句

    千次阅读 2016-01-13 17:11:01
    DBCC SHRINKDATABASE ([hds117139444_db],20)
  • SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命令进行快速清除数据库中的事务日志,命令如下:  - 第一步:清空日志   DUMP TRANSACTION  databasename...
  • 原本表大小: 删除一部分表信息后: 收缩数据文件空间: DBCC SHRINKFILE (N'sysopertest' , 52500) 可以收缩数据文件,需要消耗事务日志...
  •  将shp文件导入oracle中就想着直接用sql进行普通查询和空间查询,这样直接通过webserver发布就可以不用arcgis server直接进行接口调用了,感觉这样比较接触底层些,所以就开始摸索了==  前提是oracle安装好,shp...
  • 因为我们的数据量非常大,数据不断增长,所以决定对前面的历史数据...但是已经设置了简单模式,发现日志文件依旧不断的增加,而原来数据库的空间 依旧没有变小,只有unallocated space有减少的趋势,求各位大神怎么解决
  • 如何释放Sqlserver所占得内存

    千次阅读 2009-04-29 19:13:00
    sql server 在查询大数据量的数据时,总会占用大量的内存,并且居高不下,一不小心就会死机。 下面这个是我从网上找到的... 在你完成此次查询后,sqlserver不会马上释放内存,数据会仍然放在内存中,这是sqlserver
  • 翻来翻去,发现SQL Server居然就占了30多G…… 再仔细检查一下,发现是MSSQL\DATA文件夹下,有太多的mdf和ldf文件了,而且有几个是好几G大小的。其实就是这两个文件。 平时各种还原库,也不太注意这个,没想到...
  • SqlServer2008 r2数据库,数据文件太大了,谁知道,这里的保留,还有未使用,都是怎么来的么? 我最大的表有上亿条数据,保留有80多个g,但是实际数据大小只有40多g,还有40多g未使用,这些都占用磁盘空间,现在搞得...
  • SQLServer空间查询geometry

    万次阅读 2018-01-18 11:54:25
    一、介绍geometry数据类型为空间数据提供了一个存储结构,它是由...geometry 数据类型提供了与开放地理空间联盟(OGC)Simple Features Specification for SQL标准结合的属性和方法,使得你可以对geometry数据执行操作
  • SQL数据库空间不足怎么办

    千次阅读 2007-10-24 15:16:00
    SQL数据库空间不足怎么办
  • sql server空间扩容

    千次阅读 2019-02-14 21:45:29
    要求:做一个测试,假如E盘空间满了,需要把数据库文件路径改写到其他盘,要求保持默认组不变,现暂定为G盘 新路径位置:G:\test3   实际操作 添加数据文件test3 添加数据文件选择不同路径,默认组不变 ...
  • SQL Server 2008为大地测量空间数据提供了geography数据类型,为平面空间数据提供了geometry数据类型。这两个都是Microsoft .NET Framework通用语言运行时(CLR)类型,并且可以用来存储不同种类的地理元素,例如点、...
  • SQL Server 缓存清除与内存释放

    万次阅读 2018-05-23 13:43:52
    这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统峰值时(预留内存根据系统默认预留使用为准,至少4M),才会清除一些缓存释放少量的内存为新的缓存腾出空间。这些内存一般都是...
  • 平面空间数据类型 geometry 在 SQL Server 中作为公共语言运行时 (CLR) 数据类型实现。 此类型表示欧几里得(平面)坐标系中的数据。 SQL Server 支持 geometry 空间数据类型的一组方法。 这些方法包括开放地理空间...
  • SQL语句创建表空间

    千次阅读 2013-08-20 21:06:33
    使用SQL语句进行创建.  1.创建表空间  -- 公共模块表空间 create tablespace cctc_core logging datafile '/ORACLE/PRODUCT/10.2.0/ORADATA/cctchdcq/cctc_core.dbf' size 100m autoextend on next 10m e
  • 查看表空间使用的两条常用SQL

    千次阅读 2014-12-08 09:50:43
    1. 查看表空间大小: SELECT tablespace_name, SUM(bytes)/1024/1024 total FROM DBA_FREE_SPACE GROUP BY tablespace_name ORDER BY 2 DESC; SQL> SELECT tablespace_name, SUM(bytes)/1024/1024 || 'MB' total ...
  • 在无法扩充硬盘(200G)空间的前提下,另增加了一个F盘,有500G,但不知道怎么使用,最直接的是把原数据库分离到F盘上,但原D盘就没用了,那么问题来了,SQL SERVER2008是否有像ORACLE数据库一样可以保持D盘数据不变...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 508,295
精华内容 203,318
关键字:

怎么释放sql空间