tnblog
首页
视频
资源
登录

查看数据库中表的资源占用

4717人阅读 2021/12/30 14:36 总访问:12583 评论:0 收藏:0 手机
分类: 数据库
  1. BEGIN
  2.   --查询目前数据库中的用户表
  3.   DECLARE @currentTable TABLE (tableName NVARCHAR(50));
  4.   INSERT INTO @currentTable (tableName)
  5.   SELECT name
  6.   FROM sysobjects
  7.   WHERE xtype = 'U';
  8.   --缓存系统存储过程的表变量
  9.   DECLARE @temp TABLE(tableName NVARCHAR(50), rows NVARCHAR(50), reserved NVARCHAR(50),
  10.                       data NVARCHAR(50), indexSize NVARCHAR(50), unused NVARCHAR(50));
  11.   DECLARE i_cursor CURSOR FOR SELECT tableName FROM @currentTable;
  12.   OPEN i_cursor;
  13.   DECLARE @tableName NVARCHAR(50);
  14.   FETCH NEXT FROM i_cursor INTO @tableName;
  15.   WHILE @@FETCH_STATUS = 0
  16.   BEGIN
  17.     INSERT INTO @temp
  18.     --调用系统存储过程,查询表的资源占用情况
  19.     EXEC sp_spaceused @tableName;
  20.     FETCH NEXT FROM i_cursor INTO @tableName;
  21.   END
  22.   CLOSE i_cursor;
  23.   DEALLOCATE i_cursor;
  24.   DECLARE @temp1 TABLE(tableName NVARCHAR(50), rows INT, reserved INTdata INT, indexSize INTunused INT);
  25.   INSERT INTO @temp1
  26.   SELECT tableName
  27.   ,      rows
  28.   ,      convert(INTsubstring(reserved, 1len(reserved) - 3))
  29.   ,      convert(INTsubstring(data1len(data) - 3))
  30.   ,      convert(INTsubstring(indexSize, 1len(indexSize) - 3))
  31.   ,      convert(INTsubstring(unused1len(unused) - 3))
  32.   FROM @temp;
  33.   --统计比例
  34.   DECLARE @dataSum INT, @indexSum INT;
  35.   SELECT @dataSum = sum(data), @indexSum = sum(indexSize) FROM @temp1;
  36.   DECLARE @result TABLE(tableName NVARCHAR(50), rows INTdata DECIMAL(10,2), dataRate DECIMAL(10,2),
  37.                         indexSize DECIMAL(10,2), indexRate DECIMAL(10,2))
  38.   INSERT INTO @result
  39.   SELECT tableName
  40.   ,      rows
  41.   ,      data * 1.0 / 1048576 --KB转为GB
  42.   ,      data * 1.0 / @dataSum
  43.   ,      indexSize * 1.0 / 1048576
  44.   ,      indexSize * 1.0 / @indexSum
  45.   FROM @temp1
  46.   SELECT * FROM @result ORDER BY data DESC;
  47. END


评价

oracle数据库中没有scott用户

使用SYS用户登录conn sys/密码 as sysdba(默认密码123456)然后找到oracle安装目录下scott.sql的这个文件然后执行命令:@+...

没有为 SQL 缓存通知启用数据库

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql -S 数据库IP -U 登录名 -P 密码 -d 数据库名称 -t 表名 -et

ado.net访问数据库的基本用法

放回datatable//1:开打数据库的连接 using(SqlConnectionconn=newSqlConnection("server=.;uid=sa;pwd=123456;databa...

多线程、Lock锁、数据库实现队列

队列其元素以先进先出(Firstin,Firstout,FIFO)的方式来处理的集合。先放入队列中的元素会先读取。队列使用System.Collect...

思宇上课笔记—SQL数据库分页查询的方式

jQuery课堂实例分页在实际开发中经常被用到,今天就来介绍下SQL数据库分页的几种常见方式。 下面的例子都以每分5条数据为一...

遍历数据库中表的T4模板

简单的案例创建文本模板ctrl+s出奇迹<#@templatedebug="false"hostspecific="false"language=&quot...

日志是写数据库好还是文件好,以及日志策略

先来看看大佬的一句话:离开需求谈技术都是扯淡主要是看你的日志是为了只做一个存储归档,还是要把数据对统计与分析如果只...

数据库的varchar和nvarchar的区别

搞了一个上午,自己测试看懂的一点点小东西,现在记录下来....数据库的varchar和nvarchar的区别首先内存上:1--8000 1--400...

mysql数据库基础

1 数据库和表操作 2 数据操作 3 高级查询 4 mysql管理1 数据库和表操作 数据库 创建:create database 数据库名 [default ...

EF连接mysql连接mysql数据库操作中文数据乱码解决方法

修改数据库的连接字符器在连接字符器添加charset=gb2312。注意事项:(1)字符编码不支持UTF8。(2)必须使用规定编码。示例:&...

EF连接mysql数据库

注意事项准备工作(1)下载MySQL数据库软件6.6.6版本。 (2)下载MySQL数据库mysql-connector-net-6.6.6两者不一样都不能少。(...

EF操作数据库的数据迁移

Enable-Migrations启用数据库迁移。Enable-Migrations –EnableAutomaticMigrations 启动自动迁移。Update-Database 更新到...

redis使用list存储热点数据库

今天,又学啦一点新知识,redis(缓存),看到这个单词的时候想必大家都会有一种似曾相识的感觉吧准备好,我要开始讲解啦首先我...
没有个性,不需要签名
排名
78
文章
3
粉丝
0
评论
0
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术