sql server查询磁盘空间占用

使用管理员账号在master库执行

WITH T1 AS (
SELECT DISTINCT
REPLACE(vs.volume_mount_point,':\','') AS Drive_Name ,
CAST(vs.total_bytes / 1024.0 / 1024 / 1024 AS NUMERIC(18,2)) AS Total_Space_GB ,
CAST(vs.available_bytes / 1024.0 / 1024 / 1024  AS NUMERIC(18,2)) AS Free_Space_GB
FROM    sys.master_files AS f
CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id) AS vs
)
SELECT
Drive_Name,
Total_Space_GB,
Total_Space_GB-Free_Space_GB AS Used_Space_GB,
Free_Space_GB,
CAST(Free_Space_GB*100/Total_Space_GB AS NUMERIC(18,2)) AS Free_Space_Percent
FROM T1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您需要将 SQL Server 中的部分表迁移到另一个磁盘空间,可以按照以下步骤进行操作: 1. 创建一个新的文件组和文件,用于存储要迁移的表。可以使用以下命令创建: ``` ALTER DATABASE YourDatabaseName ADD FILEGROUP NewFileGroupName; ALTER DATABASE YourDatabaseName ADD FILE (NAME = NewFileGroupFileName, FILENAME = 'NewFileGroupFilePath') TO FILEGROUP NewFileGroupName; ``` 2. 将要迁移的表移动到新的文件组中。可以使用以下命令移动表: ``` ALTER TABLE YourTableName SET (FILEGROUP = NewFileGroupName); ``` 3. 重新建立表的索引。可以使用以下命令重新建立索引: ``` ALTER INDEX ALL ON YourTableName REBUILD WITH (FILLFACTOR = 90); ``` 4. 如果您的表中包含大量数据,可以考虑使用分区表进行迁移。可以使用以下命令创建分区表: ``` CREATE PARTITION FUNCTION YourPartitionFunctionName (YourPartitionColumn) AS RANGE RIGHT FOR VALUES (YourPartitionValues); CREATE PARTITION SCHEME YourPartitionSchemeName AS PARTITION YourPartitionFunctionName TO (YourFileGroup1Name, YourFileGroup2Name, ...); CREATE TABLE YourPartitionedTableName ( YourTableColumns ) ON YourPartitionSchemeName (YourPartitionColumn); ``` 然后,您可以使用 ALTER PARTITION 命令将分区移动到新的文件组中,以及重新建立索引。 以上是一些基本的操作步骤,具体的实现方式可以根据您的具体情况进行调整。请注意,在进行任何操作之前,请务必备份您的数据库以及相关的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值