一.查看和建立索引 select * from user_indexes where table_name = 'student' create index i_student_num on student(num) 二.使用索引的注意点 ①类型匹配 若student中num列是varchar类型.语句select * from student where num = 100 该语句被转化为select * from student where to_number(num) = 100.该列的索…
在Oracle中查看所有的表: select * from tab/dba_tables/dba_objects/cat; 看用户建立的表 : select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select * from user_indexes //可以查询出所有的用户表索引   查…
利用Oracle中系统自带的两个视图可以实现查看表中主键信息,语句如下:select a.constraint_name, a.column_name from user_cons_columns a, user_constraints b where a.constraint_name = b.constraint_name and b.constraint_type = 'P' and a.table_name = '大写的表名' 查看表的主键约束名称,以及主键约束的字段名称.如果没有,则返…
第一种: 在PL/SQL中,在Explain plan Window中执行要优化的Sql语句.结果,如下图: Object name列中显示了命中的索引名,Cost列显示了CPU的使用率(%). 第二种: 使用Explain plan for 命令. 1.执行 “explain plan for  要执行的Sql语句;” 2.执行 “select * from table(DBMS_XPLAN.display);”查看结果.如下图…
.检查无效的数据库对象: SELECT owner, object_name, object_type,status FROM dba_objects WHERE status = 'INVALID'; .检查不起作用的约束: SELECT owner, constraint_name, table_name, constraint_type, status FROM dba_constraints WHERE status = 'DISABLED'; .检查无效的触发器: SELECT own…
分类: DB 2011-12-03 21:34 611人阅读 评论(0) 收藏 举报 oracleconstraintsimmutableusertabledomain 1.  分别用两种方法创建主键 create table test1(id number,name varchar2(10)); insert into test1 values(1,'t1'); insert into test1 values(2,'t2'); commit; alter table test1 add co…
--查看oracle数据库的单个表结构 select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual; 括号里面有两个参数,第一个参数是我们要查询的对象,这里查的是表结构,所以是'TABLE'. 第二个参数是我们要查的表的表名,这里的表名必须大写. 注意:执行完上面这条语句你可能只是看到整个建表语句的一部分,因此我们在执行命令的时候可以加上下面的语句: SQL> SET LONG 3000SQL> SET PAGESIZE 0SQL&…
很多时候我们想知道一个表或一个索引占用多少M的空间,以下脚本就是满足这个要求的,记住替换其中的内容. SELECT owner, segment_name, SUM(bytes)/1024/1024 FROM dba_segments --WHERE owner='MYUSER' --And segment_name='MYSEG' GROUP BY owner,segment_name ORDER BY 3 DESC;…
1.在pl/sql中打开cmd命令容器 2.在cmd命令窗口中输入:explain plan for select * from t; 3.查看sql语句的执行计划:select * from table(dbms_xplan.display); MISSES IN library cache during parse:1 翻译:发生在解析的硬解析数量为1,表示硬解析 MISSES IN library cache during parse:0 翻译:发生在解析的硬解析数量为0,表示没有硬解析,…
dblink在数据库中使用是比較多的,简单方便.只是随着oracle安全机制的加强.普通用户登录仅仅能看到,username以及连接字符串.那么dblinkpassword怎样查看呢? 非常easy.须要sys账户登录后: SELECT * FROM SYS.link$; 这样.就能够看到dblink的具体信息,也能够看到password了.…
获取表:select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_t…
本文转自:http://www.cnblogs.com/QDuck/archive/2010/08/11/1797225.html 1.查看所有用户:   select * from dba_users;   select * from all_users;   select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):   select * from dba_sys_privs;   select * from user_sys_priv…
select a.constraint_name, a.column_name from user_cons_columns a, user_constraints b where a.constraint_name = b.constraint_name and b.constraint_type = 'P' and a.table_name = 'AA'-------大写 查看AA表的主键约束名称,以及主键约束的字段名称. 如果没有,则返回空…
1.select  表中重复的字段 from  表名 group by 表中的重复的字段 HAVING count(表中的重复的字段)>1 举例说明 : 表名 : psp_cell_model  重复的字段名:mp_no select  mp_no from psp_cell_model group by mp_no HAVING count(mp_no)>1; 举例2: select *  from psp_cell_model where  mp_no in( select  mp_no…
大家都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢? con sys/sys as dba 1. 利用triger 这里不介绍. 2. 利用 DBMS_SESSION 过程包. BEGIN DBMS_SESSION.set_identifier(SYS_CONTEXT('USERENV', 'IP_ADDRESS')); END; 3. 我们可以通过触发器. create or replace trigger on_logon_trigge…
查看当前用户每个表占用空间的大小:    select segment_name,sum(bytes)/1024/1024 from user_extents group by segment_name 查看每个表空间占用空间的大小:    select tablespace_name,sum(bytes)/1024/1024 from dba_segments group by tablespace_name 来源:http://www.west263.com/www/info/27329-1…
1.select uat.table_name from user_all_tables uat 该SQL可以获得所有用户表的名称 2.select object_name, created,last_ddl_time from user_objects 该SQL可以获得所有用户对象(包括表)的创建和最后修改时间 综合以上SQL,总结了如下语句: select uat.table_name as 表名,(select last_ddl_time from user_objects where o…
获取表: select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_…
select   table_name   from   all_tables   where   owner   =upper('jdfp')    ; 此处查的是tieba这个用户表空间下的所有表名 ----------------------------------------------------- 查询当前用户下的sequence select * from user_sequence;…
获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * from user_tab_comments where Table_Name='用户表' order by Table_Name 获取字段注释: select * from user_col_comments where Table_Name='用户表' order by column_name /*…
select count(*) from v$px_process a where a.STATUS='IN USE';…
查看Oracle中表的索引是否存在 用user_indexes和user_ind_columns系统表查看已经存在的索引 对于系统中已经存在的索引我们可以通过以下的两个系统视图(user_indexes和user_ind_columns)来查看其具体内容,例如是属于那个表,哪个列和,具体有些什么参数等等. user_indexes:     系统视图存放是索引的名称以及该索引是否是唯一索引等信息. user_ind_column:  系统视图存放的是索引名称,对应的表和列等. 查看索引个数和类别…
在Oracle中查看所有的表: select * from tab/dba_tables/dba_objects/cat; 看用户建立的表 : select table_name from user_tables; // 当前用户的表 select table_name from all_tables; // 所有用户的表 select table_name from dba_tables; //包括系统表 可以查询出所有的用户表索引 select * from user_indexes //…
mysql导入数据到oracle中. 建立Oracle表: CREATE TABLE "GG_USER" ( "USERID" BYTE) NOT NULL, "ISPART" BYTE) DEFAULT NULL, "ACTUALPOSITIONID" ) DEFAULT NULL, "BEGINWORKTIME" ) DEFAULT NULL, "BIRTHDAY" ) DEFAUL…
在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创建索引的相关表,并生成对应的索引的脚本呢? 外键缺失索引影响   外键列上缺少索引会带来三个问题,限制并发性.影响性能.还有可能造成死锁.所以对于绝大部分场景,我们应该尽量考虑在外键上面创建索引 1. 影响性能. 如果子表外键没有创建索引,那么当父表查询关联子表时,子表将进行全表扫描.影响表连接方式…
在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创建索引的相关表,并生成对应的索引的脚本呢? 外键缺失索引影响 外键列上缺少索引会带来三个问题,限制并发性.影响性能.还有可能造成死锁.所以对于绝大部分场景,我们应该尽量考虑在外键上面创建索引 影响性能. 如果子表外键没有创建索引,那么当父表查询关联子表时,子表将进行全表扫描.影响表连接方式. 影响并…
Oracle中的索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是一个独立于表的对象,可以存放在与表不同的表空间中.索引记录中存有索引关键字和指向表中数据的指针(地址).对索引进行的I/O操作比对表进行操作要少很多.索引一旦被建立就将被Oracle系统自动维护,查询语句中不用指定使用哪个索引.    从物理上说,索引通常可以分为:分区和非分区索引.常规B树索引.位…
此文转自:http://blog.sina.com.cn/s/blog_439f80c4010094n1.html 创建主键: alter table T add primary key (V) T是表名,V是列名 创建索引: create index F2009100000NMINFOSYS_XIANG on f2009100000nminfo( SYS_XIANG );创建一般索引,索引名为表名+列名 create unique index F2009100000NMINFOSYS_ZDM …
Oracle中如何导出存储过程.函数.包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句? QQ群里有人问:如何导出一个用户下的存储过程?   麦苗答:方法有多种,可以使用DBMS_METADATA.GET_DDL包. 使用PL/SQL DEVELOPER工具 -- 下面的SQL语句,如果报错:ORA-22835: 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小 (实际: 4994, 最大: 4000),那么去掉TO_CAHR SELECT TO_CH…
索引建立原则 确定针对该表的操作是大量的查询操作还是大量的增删改操作. 尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引. where语句中不得不对查询列采用函数查询,如upper函数,最好建立相应函数索引: 在SQL语句中经常进行GROUP BY.ORDER BY的字段上建立索引 用于联接的列(主健/外健)上建立索引: 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定: 尝试建立复合索引来进一步提高系统性能.修…