• 数据库常用查询


    Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名

    查询所有表名:
    select t.table_name from user_tables t;
    查询所有字段名:
    select t.column_name from user_col_comments t;
    查询指定表的所有字段名:
    select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';
    查询指定表的所有字段名和字段说明:
    select t.column_name, t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';
    查询所有表的表名和表说明:
    select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name;
    查询模糊表名的表名和表说明:
    select t.table_name from user_tables t where t.table_name like 'BIZ_DICT%';
    select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name where t.table_name like 'BIZ_DICT%';
    --查询表的数据条数、表名、中文表名
    select a.num_rows, a.TABLE_NAME, b.COMMENTS
    from user_tables a, user_tab_comments b
    WHERE a.TABLE_NAME = b.TABLE_NAME
    order by TABLE_NAME;

    数据库相关查询语句

    数据库闪回查询视图
    flashback_transaction_query

    查询数据库当前进程的连接数:
    select count(*) from v$process;
    查看数据库当前会话的连接数:
    select count(*) from v$session;
    查看数据库的并发连接数:
    select count(*) from v$session where status='ACTIVE';
    查看当前数据库建立的会话情况:
    select sid,serial#,username,program,machine,status from v$session;
    查询数据库允许的最大连接数:
    select value from v$parameter where name = 'processes';
    或者:show parameter processes;
    修改数据库允许的最大连接数:
    alter system set processes = 300 scope = spfile;
    (需要重启数据库才能实现连接数的修改)
    重启数据库:
    shutdown immediate;
    startup;
    查看当前有哪些用户正在使用数据:
    select osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine
    from v$session a,v$sqlarea b
    where a.sql_address = b.address
    order by cpu_time/executions desc;

    查看buffercache命中率

    select (1 - (sum(decode(name, 'physical reads', value, 0)) /
    (sum(decode(name, 'dbblockgets', value, 0)) +
    sum(decode(name, 'consistentgets', value, 0))))) * 100 "Hit Ratio"
    from v$sysstat;

    select name,value from v$sysstat where name in('db block gets','consistent gets','physical reads');

    命中率计算公式
    Hit Radio=1-physical reads/(db block gets+consistent gets)

    归档redo日志有多少组 每组多大

    select member from v$logfile;
    select group#, members, bytes / 1024 / 1024, status from v$log;


    查询表空间占用率

    select b.file_id 文件ID号,
    b.tablespace_name 表空间名,
    b.bytes / 1024 / 1024 || 'M' 字节数,
    (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 || 'M' 已使用,
    sum(nvl(a.bytes, 0)) / 1024 / 1024 || 'M' 剩余空间,
    100 - sum(nvl(a.bytes, 0)) / (b.bytes) * 100 占用百分比
    from dba_free_space a, dba_data_files b
    where a.file_id = b.file_id
    group by b.tablespace_name, b.file_id, b.bytes
    order by b.file_id;


    查看某一表空间下的表占用情况
    select segment_name, sum(bytes) / 1024 / 1024 || 'M '
      from dba_segments
     where TABLESPACE_NAME = 'NXPT'
       AND segment_type = 'TABLE'
     GROUP BY segment_name ;

    SELECT OWNER OWNER_NAME,
    TABLE_NAME TABLE_NAME,
    TABLESPACE_NAME TABLESPACE_NAME,
    BLOCKS ACTUAL_BLOCKS,
    BLOCKS + EMPTY_BLOCKS TOTAL_BLOCKS,
    (BLOCKS + EMPTY_BLOCKS) * 8192 / (1024 * 1024) "TABLE_SIZE[MB]"
    FROM DBA_TABLES
    WHERE TABLESPACE_NAME like 'SYSAUX'
    and BLOCKS is not null
    and BLOCKS <> 0
    order by "TABLE_SIZE[MB]" desc;

    1、查看数据库字符集
    服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

    客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,

    表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

    会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

    客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件

    字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

    2、修改字符集
    8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。

    Startup nomount;
    Alter database mount exclusive;
    Alter system enable restricted session;
    Alter system set job_queue_process=0;
    Alter database open;
    Alter database character set zhs16gbk;
    3、怎么查看数据库版本
    select * from v$version
    包含版本信息,核心版本信息,位数信息(32位或64位)等
    至于位数信息,在Linux/unix平台上,可以通过file查看,如
    file $ORACLE_HOME/bin/oracle

    4、查看进程连接数
    select  b.INST_ID, b.MACHINE, b.PROGRAM , count (*) ,b.STATUS
    from gv$process a, gv$session b
    where a.ADDR = b.PADDR and   b.USERNAME is not null  
     group by  b.INST_ID,b.MACHINE  , b.PROGRAM ,b.STATUS
      order by count (*) desc;

  • 相关阅读:
    黄聪:PowerPoint设计编辑动画的时候图层隐藏和显示问题
    黄聪:如何在Windows上安裝BeautifulSoup
    黄聪:二、如何通过URL获取其他网页源代码内容(火狐插件扩展开发教程)
    黄聪:2006 MySQL server has gone away错误,最大值溢出解决办法 mysql max_allowed_packet 查询和修改
    黄聪:解决python中文处理乱码,先要弄懂“字符”和“字节”的差别
    ExtAspNet v2.2.1
    ExtAspNet v2.3.2
    [原创]全球首款不使用ViewState的Asp.Net2.0控件库
    [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径 草根的暂时胜利
    [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径 – 之深度分析
  • 原文地址:https://www.cnblogs.com/Memories-off/p/10435305.html
Copyright © 2020-2023  润新知