`

数据库分析的一些语句

阅读更多

最近在做了次数据库的割接,整理了下操作中的分析语句:

 

1. 分析数据库表空间

方法一:这个方法当空间爆满时无法查出满了的表空间

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
       D.TOT_GROOTTE_MB "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               '990.99') "使用比",
       F.TOTAL_BYTES "空闲空间(M)",
       F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
          FROM SYS.DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
          FROM SYS.DBA_DATA_FILES DD
         GROUP BY DD.TABLESPACE_NAME) D
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 ORDER BY 4 DESC;

方法二:解决上面爆满的问题

SELECT A.TABLESPACE_NAME,  A.BYTES/1024/1024 TOTAL_M, B.BYTES/1024/1024 USED_M, C.BYTES/1024/1024 FREE_M, (B.BYTES*100)/A.BYTES "% USED", (C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A, SYS.SM$TS_USED B, SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

 

空间不足后需要添加表空间,以下供参考:

alter tablespace TBS_QUERY add datafile '/home/oracle/oracle/product/10.2.0/oradata/dajun/tbs_query01.dbf' size 2048m autoextend off;

 

2. 分析各表数据量大小

Select Segment_Name,Sum(bytes)/1024/1024 tab_size
From User_Extents t
where t.segment_type='TABLE'
Group By Segment_Name
order by tab_size desc;

 

3. 确认表空间对应的数据文件

select a.name,b.name from v$tablespace a, v$datafile b where a.ts#=b.ts#;

 

4. 对有外键约束进行关闭、开启

alter table 表名 disable constraint 约束名;

alter table 表名 enable constraint 约束名; 

5.查询用户、权限等

1.查看所有用户:
select * from dba_user;
select * from all_users;
select * from user_users;
2.查看用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;

 

6. 在使用user_tables中的num_rows做为数据迁移检查时,出现了与表实际数据不一至的情况

分析后认为是oracle对user_tables的没有即时刷新,需要对表进行分析处理。

分析表的语法:analyze table table_name compute statistics;

参过如下语句:

方法一:

--生成当前用户下所有的表分析语句

spool 路径/AnalyzeTab.sql;

select 'analyze table '||t1.TABLE_NAME||' compute statistics;' from user_tables t1;

spool off;

执行AnalyzeTab.sql即可。

 

方法二:由于分析过程不可见,谨慎使用。对于大数据量的用户不建议使用。

create or replace procedure Pro_AnalyzeTables is
  cursor cur_tab is
    select table_name from user_tables;
  record_cur_tab cur_tab%rowtype;
begin
  open cur_tab;
  loop
    fetch cur_tab
      into record_cur_tab;
    exit when cur_tab%notfound;
    --dbms_output.put_line('Start Analyze '||record_cur_tab.table_name);
    execute immediate 'analyze table ' || record_cur_tab.table_name ||
                      ' compute statistics';
    --dbms_output.put_line('End Analyze '||record_cur_tab.table_name);
  end loop;
end Pro_AnalyzeTables;

 

 

7. 分析一个表的主外键关连关系

select a.owner 主键拥有者
       ,a.table_name 主键表
       ,b.column_name 主键列
       ,C.OWNER 外键拥有者
       ,c.table_name 外键表
       ,d.column_name 外键列
from user_constraints  a
left join user_cons_columns b on  a.constraint_name=b.constraint_name
left join user_constraints C ON C.R_CONSTRAINT_NAME=a.constraint_name
left join user_cons_columns d on c.constraint_name=d.constraint_name
where  a.constraint_type='P'
    and  a.table_name=upper('bi_wo_info') --需要查看主外键关系的表
order by a.table_name 

 

 

 

分享到:
评论

相关推荐

    自动生成oracle数据库表分析语句

    ### 自动生成Oracle数据库表分析语句 在Oracle数据库管理中,定期进行表分析对于优化查询性能至关重要。通过分析表和索引,Oracle可以更新统计信息,这些信息将被查询优化器用于选择最佳的执行计划。本文将详细介绍...

    oracle数据库SQL分析语句

    这是本人自己写的一个调优语句,大家快点下载。

    连接各种数据库的sql语句

    然而,一些高级特性,如窗口函数、存储过程或触发器,可能需要针对具体数据库进行调整。 此外,数据库的性能优化也是重要一环,包括索引的创建、查询优化、事务处理等。例如,合理使用`JOIN`操作可以减少数据传输,...

    sql 创建数据库表、视图语句

    在IT行业中,数据库管理是至关重要的部分...通过分析这些语句,你可以深入理解表的设计原则,如选择合适的字段类型、设置索引、应用约束等。同时,也可以了解如何将复杂查询抽象成视图,提高代码的可维护性和查询效率。

    数据库建议SQL语句分析软件

    可以通过本软件打开它能够打开的数据库,然后可以使用SQL语句进行数据库查询,比较方便在制作ASP+ACCESS网站或者VB+ACCESS等数据库操作方面的快捷判断SQL语句是否正确的可行性分析。 此程序比较使用,不会让你产生...

    从SQLServer数据库导出SQL语句的程序

    SQL Server作为Microsoft公司推出的强大关系型数据库管理系统,广泛应用于数据存储、查询和分析。本文将详细讲解如何使用特定程序从SQL Server数据库导出SQL语句,以便于数据库维护、备份、迁移或进行其他相关操作。...

    SQL服务器,性能分析语句

    常用的数据库性能分析语句,服务器卡的时候,常用的可以查看后台连接、使用能耗比较高的语句代码

    中国省市县数据库 SQL语句

    开发者可以利用这些SQL语句创建数据库表,然后在应用程序中进行查询,例如定位用户的位置、分析地区数据等。 文件“市县.sql”很可能包含了创建这个数据库的SQL脚本,其中包含了CREATE TABLE语句来定义表结构,...

    oracle数据库语句工具

    本文将详细介绍如何使用工具监听Oracle数据库的SQL语句,特别是针对使用Hibernate框架时遇到的带问号(?)占位符的语句。 在Oracle数据库中,SQL语句是用于查询、插入、更新和删除数据的主要工具。当开发人员使用...

    null关系型数据库及SQL语句,SQLSERVER数据库设计.doc

    SQLSERVER数据库设计也存在一些缺点: * 复杂的数据模型和逻辑结构 * 高昂的成本和资源需求 * 需要专业的技术和维护 关系型数据库和SQL语句是数据库管理系统的核心组件。SQLSERVER数据库设计需要考虑多方面的因素...

    db2数据库sql语句大全

    根据提供的标题、描述以及部分文本内容,我们可以整理出与DB2数据库相关的多个知识点。...以上内容涵盖了DB2数据库中一些常用的操作命令和SQL语句,对于日常维护和管理DB2数据库具有重要的参考价值。

    ACCESS数据库里的一些查询语句用法

    此外,Access还支持一些特有的函数和操作符,这些在其他数据库系统中可能不可用。 ### 五、示例应用 假设我们有一个名为“Employees”的表,其中包含员工的信息,如姓名、部门和入职日期等。现在我们需要查询所有...

    Oracle数据库中SQL语句的优化与分析.pdf

    本文将详细介绍Oracle数据库中SQL语句的优化与分析方法。 一、SQL语句执行的基本步骤和执行计划 在Oracle数据库中,执行一条SQL语句涉及多个步骤,每个步骤都可能包括从数据库中物理检索数据行或以某种方法准备...

    数据库学习SQL语句

    数据库学习SQL语句是IT领域中的重要组成部分,尤其对于数据管理、分析以及系统开发人员来说,掌握SQL语言是必备技能。SQL(Structured Query Language)即结构化查询语言,是用于管理和处理关系数据库的标准语言。本...

    基于ORACLE数据库的SQL语句优化分析.pdf

    基于ORACLE数据库的SQL语句优化分析.pdf

    从SQLServer数据库导出SQL语句

    SQL Server作为Microsoft公司推出的强大关系型数据库管理系统,广泛应用于数据存储、查询和分析。有时,我们需要将SQL Server数据库中的结构或数据导出为SQL脚本,以便于备份、迁移、版本控制或在不同环境间同步数据...

    山东大学数据库实验sql语句

    通过以上这些SQL语句的学习和实践,学生将能够熟练掌握数据库的基本操作,为后续的数据库管理和数据分析打下坚实的基础。在实际操作过程中,还需要注意SQL语句的编写规范和数据库设计的原则,以确保数据的安全性和...

    连接远程SQL Server数据库并执行SQL语句

    ### 连接远程SQL Server数据库并执行SQL语句 在IT行业中,远程访问数据库是非常常见的需求之一,尤其是在分布式系统或需要跨地域管理数据的情况下。本文将详细介绍如何通过编程方式连接到一个位于远程服务器上的SQL...

    Oracle数据库性能分析

    为了有效地进行Oracle数据库性能分析,识别导致性能问题的SQL语句是非常关键的。以下是一些常用的工具和技术: - **AWR(Automatic Workload Repository)**: AWR提供了关于系统活动的重要信息,可以帮助识别高CPU或I...

    数据库图书信息管理数据库SQL语句.pdf

    实验要求使用SQL语句创建一个名为"db_Library"的图书信息管理数据库,数据文件和日志文件存储在D盘下特定的文件夹中,每个文件都有指定的逻辑名和操作系统名,并且配置了初始大小、最大大小和增长幅度。例如,数据...

Global site tag (gtag.js) - Google Analytics