admin管理员组文章数量:1794759
Sqlserver 数据库文件大小和剩余空间
在MS Sql Server中可通过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:
1、查询各个磁盘分区的剩余空间: Exec master.dbo.xp_fixeddrives;
2、查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name;
3、查询某个数据库中所有的表名: SELECT name FROM SysObjects Where XType=’U’ ORDER BY Name;
4、查询数据库的数据文件及日志文件的相关信(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等) select * from [数据库名].[dbo].[sysfiles]; 转换文件大小单位为MB: select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles;
5、查询当前数据库的磁盘使用情况: Exec sp_spaceused; exec sp_spaceused ‘表名’; –取得表占用空間
6、查询数据库服务器各数据库日志文件的大小及利用率 DBCC SQLPERF(LOGSPACE);
7、收缩数据库日志文件(sql server2005) backup log [数据库名] with no_log DBCC SHRINKDATABASE(N’[数据库名]’, 15, TRUNCATEONLY)
8、收缩数据库日志文件(sql server2008) USE[master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE –简单模式 GO USE [数据库名] GO DBCC SHRINKFILE (N’[数据库名]_Log’ , 11, TRUNCATEONLY) GO USE[master] GO ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY FULL –还原为完全模式 GO
9、获取分析数据库中各表大小的代码示例
IrisAppDBConn dbConn = new IrisAppDBConn(); ResultSet rs = null; try { List<String> list = new ArrayList<String>(); String sql = "SELECT name FROM SysObjects Where XType='U' ORDER BY Name"; rs = dbConn.getResultBySql(sql); while (rs.next()) { list.add(rs.getString("name")); } for (int i = 0; i < list.size(); i++) { sql = "exec sp_spaceused '" + list.get(i) + "'"; rs = dbConn.getResultBySql(sql); if (rs.next()) { // name,rows,reserved,data,index_size,unused System.out.println(rs.getString("name") + "\\t" + rs.getString("rows") + "\\t" + rs.getString("reserved") + "\\t" + rs.getString("data") + "\\t" + rs.getString("index_size") + "\\t" + rs.getString("unused") + "\\t"); } } } catch (Exception e) { e.printStackTrace(); } finally { dbConn.close(); }版权声明:本文标题:Sqlserver 数据库文件大小和剩余空间 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686653918a91002.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论