最近在做了次数据库的割接,整理了下操作中的分析语句:
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可以更新统计信息,这些信息将被查询优化器用于选择最佳的执行计划。本文将详细介绍...
这是本人自己写的一个调优语句,大家快点下载。
然而,一些高级特性,如窗口函数、存储过程或触发器,可能需要针对具体数据库进行调整。 此外,数据库的性能优化也是重要一环,包括索引的创建、查询优化、事务处理等。例如,合理使用`JOIN`操作可以减少数据传输,...
在IT行业中,数据库管理是至关重要的部分...通过分析这些语句,你可以深入理解表的设计原则,如选择合适的字段类型、设置索引、应用约束等。同时,也可以了解如何将复杂查询抽象成视图,提高代码的可维护性和查询效率。
可以通过本软件打开它能够打开的数据库,然后可以使用SQL语句进行数据库查询,比较方便在制作ASP+ACCESS网站或者VB+ACCESS等数据库操作方面的快捷判断SQL语句是否正确的可行性分析。 此程序比较使用,不会让你产生...
SQL Server作为Microsoft公司推出的强大关系型数据库管理系统,广泛应用于数据存储、查询和分析。本文将详细讲解如何使用特定程序从SQL Server数据库导出SQL语句,以便于数据库维护、备份、迁移或进行其他相关操作。...
常用的数据库性能分析语句,服务器卡的时候,常用的可以查看后台连接、使用能耗比较高的语句代码
开发者可以利用这些SQL语句创建数据库表,然后在应用程序中进行查询,例如定位用户的位置、分析地区数据等。 文件“市县.sql”很可能包含了创建这个数据库的SQL脚本,其中包含了CREATE TABLE语句来定义表结构,...
本文将详细介绍如何使用工具监听Oracle数据库的SQL语句,特别是针对使用Hibernate框架时遇到的带问号(?)占位符的语句。 在Oracle数据库中,SQL语句是用于查询、插入、更新和删除数据的主要工具。当开发人员使用...
SQLSERVER数据库设计也存在一些缺点: * 复杂的数据模型和逻辑结构 * 高昂的成本和资源需求 * 需要专业的技术和维护 关系型数据库和SQL语句是数据库管理系统的核心组件。SQLSERVER数据库设计需要考虑多方面的因素...
根据提供的标题、描述以及部分文本内容,我们可以整理出与DB2数据库相关的多个知识点。...以上内容涵盖了DB2数据库中一些常用的操作命令和SQL语句,对于日常维护和管理DB2数据库具有重要的参考价值。
此外,Access还支持一些特有的函数和操作符,这些在其他数据库系统中可能不可用。 ### 五、示例应用 假设我们有一个名为“Employees”的表,其中包含员工的信息,如姓名、部门和入职日期等。现在我们需要查询所有...
本文将详细介绍Oracle数据库中SQL语句的优化与分析方法。 一、SQL语句执行的基本步骤和执行计划 在Oracle数据库中,执行一条SQL语句涉及多个步骤,每个步骤都可能包括从数据库中物理检索数据行或以某种方法准备...
数据库学习SQL语句是IT领域中的重要组成部分,尤其对于数据管理、分析以及系统开发人员来说,掌握SQL语言是必备技能。SQL(Structured Query Language)即结构化查询语言,是用于管理和处理关系数据库的标准语言。本...
基于ORACLE数据库的SQL语句优化分析.pdf
SQL Server作为Microsoft公司推出的强大关系型数据库管理系统,广泛应用于数据存储、查询和分析。有时,我们需要将SQL Server数据库中的结构或数据导出为SQL脚本,以便于备份、迁移、版本控制或在不同环境间同步数据...
通过以上这些SQL语句的学习和实践,学生将能够熟练掌握数据库的基本操作,为后续的数据库管理和数据分析打下坚实的基础。在实际操作过程中,还需要注意SQL语句的编写规范和数据库设计的原则,以确保数据的安全性和...
### 连接远程SQL Server数据库并执行SQL语句 在IT行业中,远程访问数据库是非常常见的需求之一,尤其是在分布式系统或需要跨地域管理数据的情况下。本文将详细介绍如何通过编程方式连接到一个位于远程服务器上的SQL...
为了有效地进行Oracle数据库性能分析,识别导致性能问题的SQL语句是非常关键的。以下是一些常用的工具和技术: - **AWR(Automatic Workload Repository)**: AWR提供了关于系统活动的重要信息,可以帮助识别高CPU或I...
实验要求使用SQL语句创建一个名为"db_Library"的图书信息管理数据库,数据文件和日志文件存储在D盘下特定的文件夹中,每个文件都有指定的逻辑名和操作系统名,并且配置了初始大小、最大大小和增长幅度。例如,数据...