请选择 进入手机版 | 继续访问电脑版

Vivant

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
Vivant»论坛 Master Li SQL sql
查看: 3913|回复: 0

sql

[复制链接]
发表于 2022-5-23 09:15:49 | 显示全部楼层 |阅读模式
--查询锁定记录   
  1. SELECT ao.object_name,lo.os_user_name, CONCAT('ALTER SYSTEM KILL SESSION ''',CONCAT(CONCAT(CONCAT(s.sid,','),s.serial#),''';'))FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
复制代码
--然后删除锁定记录
  1. ALTER SYSTEM KILL SESSION '3029,53896';
复制代码
--获取表空间使用情况
  1. SELECT TABLESPACE_NAME "表空间",

  2.        To_char(Round(BYTES / 1024, 2), '99990.00')

  3.        || ''           "实有",

  4.        To_char(Round(FREE / 1024, 2), '99990.00')

  5.        || 'G'          "现有",

  6.        To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')

  7.        || 'G'          "使用",

  8.        To_char(Round(10000 * USED / BYTES) / 100, '99990.00')

  9.        || '%'          "比例"

  10. FROM   (SELECT A.TABLESPACE_NAME                             TABLESPACE_NAME,

  11.                Floor(A.BYTES / ( 1024 * 1024 ))              BYTES,

  12.                Floor(B.FREE / ( 1024 * 1024 ))               FREE,

  13.                Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED

  14.         FROM   (SELECT TABLESPACE_NAME TABLESPACE_NAME,

  15.                        Sum(BYTES)      BYTES

  16.                 FROM   DBA_DATA_FILES

  17.                 GROUP  BY TABLESPACE_NAME) A,

  18.                (SELECT TABLESPACE_NAME TABLESPACE_NAME,

  19.                        Sum(BYTES)      FREE

  20.                 FROM   DBA_FREE_SPACE

  21.                 GROUP  BY TABLESPACE_NAME) B

  22.         WHERE  A.TABLESPACE_NAME = B.TABLESPACE_NAME)

  23. --WHERE TABLESPACE_NAME LIKE 'CDR%' --这一句用于指定表空间名称

  24. ORDER  BY Floor(10000 * USED / BYTES) DESC;
复制代码
--增加数据文件
  1. ALTER TABLESPACE SYSTEM ADD DATAFILE

  2. 'C:\APP\ORACLE\ORADATA\DFYYCDB\DATAFILE\O2_MF_SYSTEM_CWMNZ9XV_.DBF'

  3. size 7167M autoextend on ; #每个文件初始分配空间为7g, autoextend on为自动增长大小
复制代码
--统计用户下所有表数据量
  1. declare

  2. v_num varchar2(200);

  3. v_sql varchar2(500);

  4. begin

  5.   for tab in (select table_name as tableName from user_tables)

  6.   loop

  7.     v_sql := 'select count(*) from '|| tab.tablename;

  8.     execute immediate v_sql into v_num;

  9.     dbms_output.put_line(tab.tablename || ',' || v_num);

  10.     end loop;

  11. end;
复制代码
--复制表结构及数据
  1. create table xxx as SELECT * FROM ipm_pe_posteval@Yytemp where 1=2
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Vivant ( 京ICP备18055970号 )

GMT+8, 2023-3-22 14:18 , Processed in 0.051087 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表