• sql表内存占用情况,并进行缩放


    sql表内存占用情况

    IF OBJECT_ID('tempdb..#TablesSizes') IS NOT NULL
    
        DROP TABLE #TablesSizes
    
    CREATE TABLE #TablesSizes
    
        (
    
          TableName sysname ,
    
          Rows BIGINT ,
    
          reserved VARCHAR(100) ,
    
          data VARCHAR(100) ,
    
          index_size VARCHAR(100) ,
    
          unused VARCHAR(100)
    
        )
    
    DECLARE @sql VARCHAR(MAX)
    
    SELECT  @sql = COALESCE(@sql, '') + '
    
    INSERT INTO #TablesSizes execute sp_spaceused ''' + QUOTENAME(TABLE_SCHEMA,
    
                                                                  '[]') + '.'
    
            + QUOTENAME(Table_Name, '[]') + ''''
    
    FROM    INFORMATION_SCHEMA.TABLES
    
    WHERE   TABLE_TYPE = 'BASE TABLE'
    
    PRINT ( @SQL )
    
    EXECUTE (@SQL)
    
    SELECT  *
    
    FROM    #TablesSizes
    
    ORDER BY Rows DESC

    USE 你的库名;
    GO
    -- 数据库空间使用情况
    EXEC sp_spaceused;
    
    -- 查下文件空间使用情况
    SELECT 
    	file_id, name,
    	[文件大小(MB)] = size / 128.,
    	[未使用空间(MB)] = (size - FILEPROPERTY(name, N'SpaceUsed')) / 128.
    FROM sys.database_files
    
    -- 表空间使用情况
    DECLARE @tb_size TABLE(
    	name sysname,
    	rows int,
    	size varchar(100),
    	data_size varchar(100),
    	INDEX_size varchar(100),
    	unused_size varchar(100)
    );
    INSERT @tb_size
    EXEC sp_msforeachtable '
    sp_spaceused ''?''
    '
    SELECT * FROM @tb_size
    

      https://social.msdn.microsoft.com/Forums/azure/pt-br/388f92e1-9a1e-497d-bde1-6664561fd44e/sql2008-mdf259912021422826228233838239064?forum=sqlserverzhchs

    缩放方法2 :

    操作命令:

      现在我一个库ASFCORE的日志文件已经达到30G了,数据文件为1G,如果要收缩日志文件,则执行如下命令即可!

    •   查看数据库的recovery_model_desc类型

        SELECT NAME, recovery_model_desc FROM sys.databases

    •   如果是FULL类型,修改为SIMPLE类型  

        ALTER DATABASE ASFCORE SET Recovery simple

    •   收缩日志文件大小(单位是M)

        DBCC SHRINKFILE (N'ASFCORE_log' , 10)

    •   检查日志文件名称

        USE ASFCORE
        SELECT NAME, size FROM sys.database_files

    •   恢复成FULL类型

        ALTER DATABASE ASFCORE SET Recovery FULL

    转载于:https://www.cnblogs.com/blackcore/archive/2010/12/27/1917911.html

    执行文件清理

    use [dbName];
    
    go
    select * from sys.database_files
    
    --清理数据文件
    DBCC SHRINKFILE (1)
    --清理日志文件
    DBCC SHRINKFILE (2)
    
    Go
    

    完整sql

    USE[master]  
    GO  
    ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT  
    GO  
    ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE   --简单模式  
    GO  
    USE 要清理的数据库名称  
    GO  
    DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY)  --设置压缩后的日志大小为2M,可以自行指定  
    GO  
    USE[master]  
    GO  
    ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL WITH NO_WAIT  
    GO  
    ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL  --还原为完全模式  
    GO
    

      

      

  • 相关阅读:
    javascript 获取<td>标签内的值。
    关于网页中鼠标动作 onfocus onblur focus()
    web大前端面试——JavaScript
    vue吸顶
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
    vue 无缝滚动插件vue-seamless-scroll的安装与使用
    杂记
    webpack打包vue项目后,配置可以修改的配置文件
    不知道的CSS
    图片惰性加载(滚动到可视区时 图片才加载)
  • 原文地址:https://www.cnblogs.com/lhlong/p/11114514.html
Copyright © 2020-2023  润新知