• Oracle 遇到的问题 (1)


    1、ORA-01502:索引'DBEPMS.SYS_C009390'或这类索引的分区处于不可用状态

    解决方法:[注 索引命名规则 IX_表名简称_列名简称/IX_表名简称_序号(索引长度在30字符以内)]

     (1) 重建索引:     alter index index_name rebuild;

     (2) 如果是分区索引,只需要重建那个失效的分区     alter index index_name rebuild partition partition_name ;

     (3) 或者改变当前索引的名字          alter index index_name rename to new_index_name

    2、查询当前用户哪个索引无效(VAILD说明这个索引可用,UNUSABLE说明这个索引不可用,USABLE 说明这个索引的分区是可用的)

       select index_name from  user_indexes where status <> 'VALID';--查出所有不可用索引进行全部重建

    3、修改索引表空间(正式库索引表空间是I_JSEPMS)

       alter index 索引名称 rebuild tablespace tablespace_name;

    4、创建索引语法[注:索引命名规则 IX_表名简称_列名简称/IX_表名简称_序号(索引长度在30字符以内)]

    --普通索引(tablespace  tablespace_name;指定索引空间,正式库索引空间为I_JSEPMS) create index 索引名 on 表名 (列名)  tablespace  tablespace_name; --单列

    create index I索引名 on 表名 (列名[, 列名, ....]) tablespace  tablespace_name; --可以有多个列

    --唯一索引 create unique 索引名 on 表名 (列名) tablespace  tablespace_name; --单列

    create unique 索引名 on 表名 (列名[, 列名, ....]) tablespace  tablespace_name; --可以有多个列

    5、删除索引

       drop index index_name;

    6、若想进行删除表操作,请先释放表空间再删除表

     alter table EAF_UploadFile deallocate   UNUSED KEEP 0;--释放表空间

     drop table tablename;

    7、无意中创建序列,需删除

     drop sequence sequence_name;

    8、查询表空间大小及路径

    select  b.file_name 物理文件名,  b.tablespace_name 表空间,  b.bytes / 1024 / 1024 大小M,  (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,  substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率    from dba_free_space a,dba_data_files b    where a.file_id = b.file_id group by b.tablespace_name,b.file_name, b.bytes    order by b.tablespace_name;

    9、查询Oracle正式数据库中表中数据条数

    select table_name,        count_rows(table_name) nrows from user_tables order by table_name asc;

    10、查询SQL数据库表中数据条数

    SELECT  a.name,   b.rows FROM sysobjects  a INNER JOIN sysindexes  b ON a.id = b.id WHERE (a.type = 'u') AND (b.indid IN (0, 1)) ORDER BY a.name,b.rows DESC

    11、若执行SQL语句时 报错ORA-00054:资源正忙,要求指定NOWAIT(首先具备DBA授予的v$lock和v$session对象权限)

    解决方案:  --查看那个用户那个进程照成死锁  select  b.username,   b.sid,   b.serial#,   logon_time  from v$locked_object a,v$session b  where a.session_id = b.sid  order by b.logon_time; d;

        这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。

        --下面我们杀掉死锁进程 sid,serial#

        alter system kill session'sid,serial#';

    12、查出来表名,索引名,索引列 

        SELECT  table_name,             index_name,             column_name,             column_position     FROM user_ind_columns     WHERE (index_name like 'SYS_%' or index_name like 'IX_%') and Table_name not like '%$%'

        --查询新增索引个数不包含系统默认创建索引

        select distinct       index_name     from user_ind_columns     WHERE index_name like 'IX_%' and Table_name not like '%$%'

  • 相关阅读:
    HTML5的data-*自己定义属性
    Cocos2d-X直接使用OpenGL接口
    经典递推问题错排公式分析
    一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用演示样例
    Linux下安装JRE和Eclipse IDE for C/C++ Developers
    Android 官方推荐 : DialogFragment 创建对话框
    hibernate 继承映射
    [Swift通天遁地]七、数据与安全-(7)创建文件浏览器:以可视化的方式浏览沙箱文件
    [Swift通天遁地]七、数据与安全-(6)管理文件夹和创建并操作文件
    [Swift]LeetCode398. 随机数索引 | Random Pick Index
  • 原文地址:https://www.cnblogs.com/huxiaoli/p/6101363.html
Copyright © 2020-2023  润新知