• SQL Server 查看数据库空间分配情况的 2 种方法


    方法 1、 sys.dm_db_file_space_usage。

    方法 2、 sys.dm_db_session_space_usage。

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

    方法 1 、

           sys_dm_db_file_space_usage 它度量方式是以页(page)为单位的,对每个数据库的不同文件都返回一行(不包涵 log 文件)

           用它是时候先要 use 到指定的数据库才行。它不会返回当前实例中的所有数据库的信息,针对当前数据库。

                total_page_count :总页面数

                allocated_extent_page_count :文件的已分配区中的总页数 。                    

                unallocated_extent_page_count:文件的未分配区中的总页数。

                user_object_reserved_page_count:从统一区为数据库中的用户对象分配的总页数。 计数中包括已分配区中未使用的页。

                internal_object_reserved_page_count:从统一区为文件中的内部对象分配的总页数。

                mixed_extent_page_count :文件的已分配混合区中的已分配和未分配总页数。

         例子、           

              select
              DB_NAME(usage.database_id) as DBName,
              sum(usage.unallocated_extent_page_count) as UnallocatedPage,
              sum(usage.allocated_extent_page_count) as AllocatedPage,
              sum(usage.internal_object_reserved_page_count)as InternalPage,
              sum(usage.user_object_reserved_page_count) as UserObjectPage,
              sum(usage.mixed_extent_page_count) as MixedPage from sys.dm_db_file_space_usage as usage
              group by usage.database_id
              go

              

    方法 2、

          sys.dm_db_session_space_usage 返回每个会话为数据库分配和释放的页数、它只是针对tempdb空间使用情况,别的数据库看不了

                 user_objects_alloc_page_count:由该会话为用户对象保留或分配的页数。

                 user_objects_dealloc_page_count:由该会话释放并不再为用户对象保留的页数。 

                 internal_objects_alloc_page_count:由该会话为内部对象保留或分配的页数。

                 internal_objects_dealloc_page_count:由该会话释放并不再为内部对象保留的页数。

          例子、           

               select
               DB_NAME(usage.database_id) as DBName,
               usage.session_id,
               usage.user_objects_alloc_page_count,
               usage.user_objects_dealloc_page_count,
               usage.internal_objects_alloc_page_count,
               usage.internal_objects_dealloc_page_count
               from sys.dm_db_session_space_usage usage;
               go

                 

    小结:

           sys.dm_db_session_usage 只针对 tempdb。

                 

  • 相关阅读:
    使用TortoiseGit从GitHub下拉上传代码配置
    Git 安装和使用教程(转载)
    C++的STL之map自动排序特性
    C语言实现随机生成0~100的数
    C语言实现随机生成0或1
    和 区别
    C语言文件操作函数
    php的缓冲/缓存 js对象 ,php编程的深入思考-1
    apache安装时的一些术语
    在linux下手动安装 apache, php, mysql--终极版
  • 原文地址:https://www.cnblogs.com/JiangLe/p/3995744.html
Copyright © 2020-2023  润新知