网站首页 > 文章中心 > 其它

oracle怎么看速度

作者:小编 更新时间:2023-08-16 13:44:46 浏览量:352人看过

oracle查询数据速度慢,已建索引的.求助

方法如下:

Oracle中建立索引,会提高查询速度: create index 索引名 on 表名(列名);

例如:

create index index_userid on tbl_detail(userid);

如何找数据库表的主键字段的名称?

SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='AAA'; select * from dba_cons_columns where CONSTRAINT_NAME='SYS_AAA';

Oracle 在创建主键(可以不加constraint SYS_AAA),会为库表自动创建索引,

索引的列为主键列. 并且当库表某些列名或者库表名改变时候,

Oracle自动创建的索引SYS_AAA,中的索引列也会自动更新(类似于视图),并且SYS_AAA会与名字更改后的库表还是保持索引关系. 关键系统库表: desc dba_constraints desc dba_cons_columns

desc dba_indexes desc dba_ind_columns desc DBA_TAB_COLUMNS

例子1:更改库表的列名

constraint SYS_AAA primary key(ID) );

//查找约束名字

select c.CONSTRAINT_NAME,c.table_name,cc.COLUMN_NAME from user_constraints c, user_cons_columns cc

where c.constraint_name=cc.constraint_name and c.table_name ='AAA' AND C.CONSTRAINT_TYPE='P';

CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------------------------ ------------ ------------- SYS_AAA AAA ID

//查找索引

select index_name,index_type,uniqueness from user_indexes where table_name='AAA'; INDEX_NAME INDEX_TYPE UNIQUENES

oracle中关于查询速度

不会的,查询view相当于重新执行创建view的语句,和直接拿语句查询没有区别的.两者没有任何差别.

如果你用的是oracle 10g,你可以建索引在上面先,如果效率没提高就把索引删掉.

如何分析为什么oracle速度慢

Oracle查询速度慢的原因总结

查询速度慢的原因很多,常见如下几种:

①.,没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)

①.0,查询语句不好,没有优化

可以通过如下方法来优化查询 :

①.0,分布式分区视图可用于实现数据库服务器联合体.联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷.这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要.有关更多信息,参见设计联合数据库服务器.(参照SQL帮助文件'分区视图')

a,在实现分区视图之前,必须先水平分区表

b,在创建成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称.这样,引用分布式分区视图名的查询可以在任何一个成员服务器上运行.系统操作如同每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图.数据的位置对应用程序是透明的.

①.1,重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和日志 DBCC SHRINKDB,DBCC SHRINKFILE. 设置自动收缩日志.对于大的数据库不要设置数据库自动增长,它会降低服务器的性能.在T-sql的写法上有很大的讲究,下面列出常见的要点:首先, DBMS处理查询计划的过程是这样的:

①., 查询语句的词法,语法检查

a,计算字段的表达是确定的

b,不能用在TEXT,Ntext,Image数据类型

c,必须配制如下选项 ANSI_NULLS = ON, ANSI_PADDINGS = ON, .......

Process:

①.,% DPC Time 指在范例间隔期间处理器用在缓延程序调用(DPC)接收和提供服务的百分比.(DPC 正在运行的为比标准间隔优先权低的间隔). 由于 DPC 是以特权模式执行的,DPC 时间的百分比为特权时间百分比的一部分.这些时间单独计算并且不属于间隔计算总数的一部 分.这个总数显示了作为实例时间百分比的平均忙时.

如何提高oracle视图的查询速度?

如何提高oracle的查询速度

几个简单的步骤大幅提高Oracle性能--我优化数据库的三板斧.

数据库优化的讨论可以说是一个永恒的主题.资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等.还有的人认为要抓出执行最慢的语句来进行优化.但实际情况是,提出疑问的人很可能根本不懂执行计划,更不要说statspack了.而我认为,数据库优化,应该首先从大的方面考虑:网络、服务器硬件配置、操作系统配置、Oracle服务器配置、数据结构组织、然后才是具体的调整.实际上网络、硬件等往往无法决定更换,应用程序一般也无法修改,所以呢应该着重从数据库配置、数据结构上来下手,首先让数据库有一个良好的配置,然后再考虑具体优化某些过慢的语句.我在给我的用户系统进行优化的过程中,总结了一些基本的,简单易行的办法来优化数据库,算是我的三板斧,呵呵.不过请注意,这些不一定普遍使用,甚至有的会有副作用,但是对OLTP系统、基于成本的数据库往往行之有效,不妨试试.(注:附件是Burleson写的用来报告数据库性能等信息的脚本,本文用到)

一.设置合适的SGA

二.分析表和索引,更改优化模式

Oracle默认优化模式是CHOOSE,在这种情况下,如果表没有经过分析,经常导致查询使用全表扫描,而不使用索引.这通常导致磁盘I/O太多,而导致查询很慢.如果没有使用执行计划稳定性,则应该把表和索引都分析一下,这样可能直接会使查询速度大幅提升.分析表命令可以用ANALYZE TABLE 分析索引可以用ANALYZE INDEX命令.对于少于100万的表,可以考虑分析整个表,对于很大的表,可以按百分比来分析,但是百分比不能过低,否则生成的统计信息可能不准确.可以通过DBA_TABLES的LAST_ANALYZED列来查看表是否经过分析或分析时间,索引可以通过DBA_INDEXES的LAST_ANALYZED列.

SQL SET AUTOTRACE ON

SQLSET TIMING ON

通过SET AUTOTRACE ON 来查看语句的执行计划,通过SET TIMING ON 来查看语句运行时间.

SQL seleCT count(*) from CASE_GA_AJZLZ;

COUNT(*)

----------

Execution Plan

0 SELECT STATEMENT Optimizer=CHOOSE

①. 0 SORT (AGGREGATE)

........................

SQL analyze table CASE_GA_AJZLZ compute statistics;

SQL select count(*) from CASE_GA_AJZLZ;

..............................

SQL set pagesize 0

SQL spool d:\analyze_tables.sql;

SQL select 'analyze table '||owner||'.'||table_name||'

compute statistics;' from dba_tables where owner='GAXZUSR';

SQL spool off

SQL spool spool d:\analyze_indexes.sql;

SQL select 'analyze index '||owner||'.'||index_name||'

compute statistics;' from dba_indexes where owner='GAXZUSR';

SQL @d:\analyze_tables.sql

SQL @d:\analyze_indexes.sql

解释:上面的语句生成了两个sql文件,分别分析全部的GAXZUSR的表和索引.如果需要按照百分比来分析表,可以修改一下脚本.通过上面的步骤,我们就完成了对表和索引的分析,可以测试一下速度的改进啦.建议定期运行上面的语句,尤其是数据经过大量更新.

当然,也可以通过dbms_stats来分析表和索引,更方便一些.但是我仍然习惯上面的方法,因为成功与否会直接提示出来.

另外,我们可以将优化模式进行修改.optimizer_mode值可以是RULE、CHOOSE、FIRST_ROWS和ALL_ROWS.对于OLTP系统,可以改成FIRST_ROWS,来要求查询尽快返回结果.这样即使不用分析,在一般情况下也可以提高查询性能.但是表和索引经过分析后有助于找到最合适的执行计划.

三.设置cursor_sharing=FORCE 或SIMILAR

SQL SELECT * FROM MYTABLE WHERE NAME='tom'

SQL SELECT * FROM MYTABLE WHERE NAME='turner'

四.将常用的小表、索引钉在数据缓存KEEP池中

五.设置optimizer_max_permutations

六.调整排序参数

以上就是土嘎嘎小编为大家整理的oracle怎么看速度相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章