查看数据库表的大小并按降序排列

合集下载

【转载】C#常用数据库Sqlserver通过SQL语句查询数据库以及表的大小

【转载】C#常用数据库Sqlserver通过SQL语句查询数据库以及表的大小

【转载】C#常⽤数据库Sqlserver通过SQL语句查询数据库以及
表的⼤⼩
在Sqlserver数据库中,⼀般我们查看数据库的⼤⼩可以通过查找到数据库⽂件来查看,但如果要查找数据表Table的⼤⼩的话,则不可通过此⽅法,在Sqlserver数据库中,提供了相应的SQL语句来查询数据库DataBase的⼤⼩,以及库中相应表的⼤⼩。

⾸先选中数据库,可以通过⼿⼯选择,也可通过在新建查询窗⼝通过语句选择。

通过语句选择的命令为
Use DataBaseName
go
选择对应数据库后,在新建查询窗⼝执⾏以下语句即可查询该数据库⼤⼩:
exec sp_spaceused;
查询数据库中指定表的⼤⼩:
exec sp_spaceused '表名';
返回结果中含有Name,Rows、reserved、data、index_size、unused
备注:原⽂转载⾃。

postgresql查看数据库,表,索引,表空间以及大小

postgresql查看数据库,表,索引,表空间以及大小

postgresql查看数据库,表,索引,表空间以及⼤⼩1,查看数据库playboy=> \l //\加上字母l,相当于mysql的,mysql> show databases;List of databasesName | Owner | Encoding-----------+----------+----------playboy | postgres | UTF8postgres | postgres | UTF8template0 | postgres | UTF8template1 | postgres | UTF8playboy=>select pg_database_size('playboy'); //查看playboy数据库的⼤⼩pg_database_size------------------3637896(1 row)playboy=>select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database; //查看所有数据库的⼤⼩datname | size-----------+---------postgres |3621512playboy |3637896template1 |3563524template0 |3563524(4 rows)playboy=>select pg_size_pretty(pg_database_size('playboy')); //以KB,MB,GB的⽅式来查看数据库⼤⼩pg_size_pretty----------------3553 kB(1 row)2,查看多表playboy=> \dt //相当于mysql的,mysql> show tables;List of relationsSchema| Name | Type | Owner--------+------+-------+---------public| test |table| playboy(1 row)3,查看单表playboy=> \d test; //相当于mysql的,mysql>desc test;Table "public.test"Column| Type | Modifiers--------+-----------------------+-----------id |integer|not nullname |character varying(32) |Indexes: "playboy_id_pk" PRIMARY KEY, btree (id)playboy=>select pg_relation_size('test'); //查看表⼤⼩pg_relation_size------------------(1 row)playboy=>select pg_size_pretty(pg_relation_size('test')); //以KB,MB,GB的⽅式来查看表⼤⼩pg_size_pretty----------------0 bytes(1 row)playboy=>select pg_size_pretty(pg_total_relation_size('test')); //查看表的总⼤⼩,包括索引⼤⼩pg_size_pretty----------------8192 bytes(1 row)4,查看索引playboy=> \di //相当于mysql的,mysql> show index from test;List of relationsSchema| Name | Type | Owner |Table--------+---------------+-------+---------+-------public| playboy_id_pk |index| playboy | test(1 row)playboy=>select pg_size_pretty(pg_relation_size('playboy_id_pk')); //查看索⼤⼩pg_size_pretty----------------8192 bytes(1 row)5,查看表空间,以及⼤⼩playboy=>select spcname from pg_tablespace; //查看所有表空间spcname------------pg_defaultpg_global(2 rows)playboy=>select pg_size_pretty(pg_tablespace_size('pg_default')); //查看表空间⼤⼩pg_size_pretty----------------14 MB(1 row)6 统计数据库中各表占⽤磁盘⼤⼩:SELECT table_schema ||'.'|| table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"'|| table_schema ||'"."'|| table_name ||'"')) AS size FROM information_schema.tablesORDER BY pg_total_relation_size('"'|| table_schema ||'"."'|| table_name ||'"') DESC limit 20;7.统计各数据库占⽤磁盘⼤⼩:SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner,CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))ELSE'No Access'END AS SIZEFROM pg_catalog.pg_database dORDER BYCASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')THEN pg_catalog.pg_database_size(d.datname)ELSE NULLEND DESC-- nulls firstLIMIT 20。

Oracle中查询表的大小、表的占用情况和表空间的大小

Oracle中查询表的大小、表的占用情况和表空间的大小

Oracle中查询表的⼤⼩、表的占⽤情况和表空间的⼤⼩有两种含义的表⼤⼩。

⼀种是分配给⼀个表的物理空间数量,⽽不管空间是否被使⽤。

可以这样查询获得字节数:select segment_name, bytesfrom user_segmentswhere segment_type = 'TABLE';或者Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name另⼀种表实际使⽤的空间。

这样查询:analyze table emp compute statistics;select num_rows * avg_row_lenfrom user_tableswhere table_name = 'EMP';查看每个表空间的⼤⼩Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name1.查看剩余表空间⼤⼩SELECT tablespace_name 表空间,sum(blocks*8192/1000000) 剩余空间M FROM dba_free_space GROUP BY tablespace_name;2.检查系统中所有表空间总体空间select ,sum(a.bytes/1000000)总空间 from v$datafile a,v$tablespace b where a.ts#=b.ts# group by ; 1、查看Oracle数据库中表空间信息的⼯具⽅法: 使⽤oracle enterprise manager console⼯具,这是oracle的客户端⼯具,当安装oracle服务器或客户端时会⾃动安装此⼯具,在windows操作系统上完成oracle安装后,通过下⾯的⽅法登录该⼯具:开始菜单——程序——Oracle-OraHome92——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择‘独⽴启动’单选框——‘确定’ —— ‘oracle enterprise manager console,独⽴’ ——选择要登录的‘实例名’ ——弹出‘数据库连接信息’ ——输⼊’⽤户名/⼝令’ (⼀般使⽤sys⽤户),’连接⾝份’选择选择SYSDBA——‘确定’,这时已经成功登录该⼯具,选择‘存储’ ——表空间,会看到如下的界⾯,该界⾯显⽰了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间⼤⼩,已使⽤的表空间⼤⼩及表空间利⽤率。

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBY

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBY

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBYoracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDER BY,一些练习题关键字:oracle查询结果排序asc desc升序降序多列order by一些练习题查询结果的排序显示EMP表中不同的部门编号。

如果要在查询的同时排序显示结果,可以使用如下的语句:Sql代码SELECT字段列表FROM表名WHERE条件ORDER BY字段名1[ASC|DESC][,字段名2[ASC|DESC]...];SELECT字段列表FROM表名WHERE条件ORDER BY字段名1[ASC|DESC][,字段名2[ASC|DESC]...];ORDER BY从句后跟要排序的列。

ORDER BY从句出现在SELECT语句的最后。

排序有升序和降序之分,ASC表示升序排序,DESC表示降序排序。

如果不指明排序顺序,默认的排序顺序为升序ASC。

如果要降序,必须书写DESC关键字1.升序排序【训练1】查询雇员姓名和工资,并按工资从小到大排序。

输入并执行查询:Sql代码SELECT ename,sal FROM emp ORDER BY sal;SELECT ename,sal FROM emp ORDER BY sal;执行结果为:Sql代码ENAME SAL---------------------------------SMITH800JAMES950ENAME SAL---------------------------------SMITH800JAMES950注意:若省略ASC和DESC,则默认为ASC,即升序排序。

2.降序排序【训练2】查询雇员姓名和雇佣日期,并按雇佣日期排序,后雇佣的先显示。

输入并执行查询:Sql代码SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;结果如下:Sql代码ENAME HIREDATE------------------------------------ADAMS23-5月-87SCOTT19-4月-87MILLER23-1月-82JAMES03-12月-81FORD03-12月-81ENAME HIREDATE------------------------------------ADAMS23-5月-87SCOTT19-4月-87MILLER23-1月-82JAMES03-12月-81FORD03-12月-81注意:DESC表示降序排序,不能省略。

SQLServer2005查看数据库表的大小按照表大小排列

SQLServer2005查看数据库表的大小按照表大小排列

SQLServer2005查看数据库表的大小按照表大小排列(1)Question:尼玛一个数据库,动辄几十个G,伤不起啊,怎样才能知道当前数据库里面各个表的大小呢?以便将部分较大的数据库表中不容易被频繁访问的数据归档到历史表中,例如每天将一个自然年以前的数据放入历史表中。

(2)Key:网上搜了一圈,关键字sp_spaceused (参见:/zh-cn/library/ms188776.aspx)(3)Sample:同时找到了一个示例(参见:/linuxxitongguanli/519.html 推荐: SQL Server 2005 查看数据库表的大小按照表大小排列),下面就将这个示例的代码原样抄写下来,供大家分享啦!对了,我在2005上验证过,代码没有什么大问题。

(4)Code:(4.1)将表大小占用情况存放到新创建的 tablespaceinfo表中SQL codeif not exists (select * from dbo.sysobjects where id = object_ id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUser Table') = 1)create table tablespaceinfo --创建结果存储表(nameinfo varchar(50) ,rowsinfo int , reserved varchar(20) ,datainfo varchar(20) ,index_size varchar(20) ,unused varchar(20) )delete from tablespaceinfo --清空数据表declare @tablename varchar(255) --表名称declare @cmdsql varchar(500)DECLARE Info_cursor CURSOR FORselect from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTa ble') = 1and not like N'#%%' order by OPEN Info_cursorFETCH NEXT FROM Info_cursorINTO @tablenameWHILE @@FETCH_STATUS = 0BEGINif exists (select * from dbo.sysobjects where id = object_id( @tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1) execute sp_executesqlN'insert into tablespaceinfo exec sp_spaceused @tbname', N'@tbname varchar(255)',@tbname = @tablenameFETCH NEXT FROM Info_cursorINTO @tablenameENDCLOSE Info_cursorDEALLOCATE Info_cursorGO(4.2)查看当前数据库大小情况SQL code--itlearner注:显示数据库信息sp_spaceused @updateusage = 'TRUE'(4.3)查看存放了当前数据库各个表大小的tablespaceinfo表中记录SQL code--itlearner注:显示表信息select*from tablespaceinfoorder by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserve d)))-2) as int) desc更多0。

查看表、表空间实际大小

查看表、表空间实际大小

查看指定表空间下最大的前10个表Select * from (select SEGMENT_NAME,SEGMENT_TYPE,bytes/1024/1024 total from dba_segments where TABLESPACE_NAME='SMS_DATA' order by bytes/1024/1024 desc ) where rownum <20;查看自动增长SELECT FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE FROM DBA_DATA_FILES where TABLESPACE_NAME='SYSTEM';查看所有表空间大小Select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;未使用的表空间大小Select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;查看所有表空间对应的文件select file_name,tablespace_name,bytes from dba_data_files where tablespace_name='SMS_DATA';select file_name,tablespace_name||','||bytes from dba_data_filesOracle中有两种含义的表大小一种是分配给一个表的物理空间数量,而不管空间是否被使用。

可以这样查询获得字节数:select segment_name, bytesfrom user_segmentswhere segment_type = TABLE;效果如下:或者Select Segment_Name,Sum(bytes)/1024/1024 from User_Extents Group By Segment_Name;效果如下:【这个查询速度慢】上两图结果所示,查询均为10896M分配给表的大小下图查询出该表当前占用的实际空间大小另一种表实际使用的空间。

查看Oracle数据库表空间大小的方法

查看Oracle数据库表空间大小的方法

INITIALEXTENT
NEXTEXTENT
MAX_EXTENTS
CUREXTENT
1
SYSTEM
SYSTEM
ONLINE
112
56
32765
1
2
_SYSSMU1$
UNDOTBS1
ONLINE
128
64
32765
4
3
查看Oracle数据库表空间大小的方法
2013-07-30 00:58:06| 分类: Oracle数据库 | 标签:表空间 oracle |举报|字号 订阅
1.查看所表空间大小
SQL>select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
MEMBER
-------------------------------------------
/zxindata/oracle/data/redolog/redo01.dbf
/zxindata/oracle/data/redolog/redo02.dbf
/zxindata/oracle/data/redolog/redo03.dbf
FILE_ID
FILE_NAME
TABLESPACE_NAME
AUTOEXTENSIBLE
INCREMENT_BY
1
9
/zxindata/oracle/data/zxuma2_data
ZXUMA2_DATA
YES
16384
2
8
/zxindata/oracle/data/zxdbp_156

MySQL中的排序和分组查询方法

MySQL中的排序和分组查询方法

MySQL中的排序和分组查询方法MySQL是一种常用的关系型数据库管理系统,它提供丰富的查询功能来满足不同的需求。

在实际的数据库应用中,排序和分组查询是非常常见和重要的操作,可以对数据进行有序展示和统计分析。

本文将介绍MySQL中的排序和分组查询方法,包括使用ORDER BY子句进行排序,使用GROUP BY子句进行分组,并结合其他相关的语句和方法进行详细说明和实例演示。

排序查询是指对查询结果按照指定的字段或表达式进行排序的操作。

MySQL 提供了ORDER BY子句来实现排序查询。

ORDER BY子句可以设置升序(ASC)或降序(DESC)排序方式,默认为升序。

在使用ORDER BY子句时,可以指定一个或多个字段进行排序。

例如,假设有一个名为employees的表,其中包含员工的姓名(name)和工资(salary)两个字段,我们可以按照工资的降序进行排序查询,如下所示:```SELECT name, salary FROM employees ORDER BY salary DESC;```上述语句将按照工资的降序查询员工姓名和工资,并将结果按照工资从高到低排序。

如果要按照多个字段进行排序,可以在ORDER BY子句中使用逗号分隔,如下所示:```SELECT name, age, salary FROM employeesORDER BY age ASC, salary DESC;```上述语句将先按照年龄的升序排序,若年龄相同则按照工资的降序排序。

通过ORDER BY子句,我们可以根据需求对查询结果进行灵活的排序。

分组查询是指将查询结果根据指定的字段进行分组,并对每个组进行聚合计算的操作。

在MySQL中,可以使用GROUP BY子句来实现分组查询。

GROUP BY子句根据指定的字段或表达式对查询结果进行分组,聚合函数(如SUM、COUNT、AVG等)可以用于对每个组进行计算。

例如,假设有一个名为orders的表,其中包含订单的编号(order_id)、产品名称(product_name)和销售数量(quantity)三个字段,我们可以按照产品名称进行分组,并统计每个产品的销售总量,如下所示:```SELECT product_name, SUM(quantity) as total_quantityFROM ordersGROUP BY product_name;```上述语句将按照产品名称进行分组,并计算每个产品的销售总量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档