
oracle查询优化
文章平均质量分 75
47522341
这个作者很懒,什么都没留下…
展开
-
根据查询计划优化查询语句
一般在oracle的查询语句中,如果碰到两个表进行关联,在使用基于规则的优化程序执行检索时,基本的一个思路是使用中间结果较少的表做driving table.但也有特例. 环境描述: 表PCR中有2w条数据记录,其中符合条件pcr.channel_id=’31’的记录条数不足2000,字段party_id, channel_id上建有联合索引. 表OI上的记录原创 2008-09-02 16:16:00 · 1339 阅读 · 0 评论 -
借助内存表处理复杂的oracle查询要求
借助内存表处理复杂的oracle查询要求.在日常业务处理过程中,我们经常会碰到一些非常规的查询需求, 这些需求我们或者可以借助动态语句,或者其他现有的oracle函数完成查询结果, 但效率往往差强人意. 假设我们有一个客户订单业务表{订单号, 订单客户, 订单日期, 数量, 金额}存储了订单的往来明细数据,订单表中保存最近3个月的往来明细共1000w条记录, 其中客户总量约500000.原创 2009-06-10 15:27:00 · 11399 阅读 · 0 评论 -
索引的特性与优化
一, 索引的概念... 1二, 索引的文件存储... 12.0 转储索引结构... 32.1 索引头内容分析... 42.2 索引root节点分析... 62.3 索引叶子节点分析... 7三, 如何建立最佳索引... 9何时使用索引... 9什么是最佳索引... 10最佳索引的参数(CF) 10有效使用索引的几个问题... 11四, 导致索引无效的情况原创 2009-06-10 15:31:00 · 2650 阅读 · 1 评论 -
热点块竞争和解决
热点块的定义数据库的热点块,从简单了讲,就是极短的时间内对少量数据块进行了过于频繁的访问。定义看起来总是很简单的,但实际在数据库中,我们要去观察或者确定热点块的问题,却不是那么简单了。要深刻地理解数据库是怎么通过一些数据特征来表示热点块的,我们需要了解一些数据库在这方面处理机制的特性。数据缓冲区的结构我们都知道,当查询开始的时候,进程首先去数据缓冲区中查找是否存在查询所需要的数据块,如转载 2008-12-06 09:03:00 · 1133 阅读 · 0 评论 -
identifing unused indexes
PURPOSE------- The purpose of this document is to explain how to find unused indexes using the new feature in Oracle 9i: "Identifying Unused Indexes" viaALTER INDEX MONITORING USAGE, as mentioned in O转载 2008-12-03 15:46:00 · 854 阅读 · 0 评论 -
oracle的列转行问题
Oracle的列转行问题Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久没有发现很合适的方法。网络一般推原创 2009-02-07 12:01:00 · 3021 阅读 · 0 评论 -
oracle内存参数设置
1.SGA区的大小 SGA=log_buffer + Large_pool_size + java_pool_size + shared_pool_size + Data buffer SGA--原则:物理RAM的55%-58%;SGA不能太小,Oracle性能会差,但是也不能过大,影响操作系统正常运作。 log_buffer--原则:128K-1M 之间,不可太大 Large_pool_s转载 2008-11-27 14:54:00 · 3896 阅读 · 0 评论 -
tkprof工具简介
Tkprof工具介绍和分析 Tkprof是一个用于分析oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。Tkprof的使用步骤1, 在数据库级别上设置Timed_statistics为true。8i数据库需要修改转载 2008-11-26 15:18:00 · 1538 阅读 · 0 评论 -
使用over函数实现递归汇总
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。一、over函数 over函数指定了分析函数工作的数据窗口的大小,这个数据窗口大小可能会随着行的变化而变化,例如:over(order by salary)按照salary排序进行累计,order by是个默认的开窗函数over原创 2008-11-25 16:13:00 · 1410 阅读 · 0 评论 -
Oracle的group by聚合函数扩展cube rollup和grouping sets
Oracle的group by聚合函数扩展cube rollup和grouping sets聚合函数是oracle数据仓库的基础。为了提高距合的性能,oracle提供了group by条款的扩展。ü cubeü rollupü groupingü grouping sets这几个对sql的扩展使得查询和报告都变原创 2008-11-24 09:14:00 · 2872 阅读 · 0 评论 -
根据statspack报表优化oracle数据库实例之“DB file sequential read”
根据statspack报表优化oracle数据库实例之“DB file sequential read”oracle的等待事件是衡量oracle运行状况的重要依据及指标。等待事件的概念是在oracle7.0.1.2中引入的,大致有100个等待事件。在oracle8.0中这个数目增加到了大约150个,在oracle8i中大约有200个事件,到oracle9i时,等待事件增加到360个。O原创 2008-11-13 14:26:00 · 2594 阅读 · 0 评论 -
根据statspack报表优化oracle数据库实例之“DB file scattered read”
根据statspack报表优化oracle数据库实例之“DB file scattered read”oracle的等待事件是衡量oracle运行状况的重要依据及指标。等待事件的概念是在oracle7.0.1.2中引入的,大致有100个等待事件。在oracle8.0中这个数目增加到了大约150个,在oracle8i中大约有200个事件,到oracle9i时,等待事件增加到360个。Or原创 2008-11-12 10:23:00 · 1556 阅读 · 0 评论 -
使用临时表优化大表查询
1、前言 目前所有使用Oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量。当然在Oracle中创建分区是一种不错的选择,但是当你发现你的应用有多张表关联的时候,并且这些表大部分都是比较庞大,而你关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得到这个结果集的速度非常快,那么这个时候我考虑在Oracle中创建转载 2008-10-24 09:32:00 · 1782 阅读 · 2 评论 -
分析函数ratio_to_report的使用
Ratio_to_report函数Syntax 分析函数RATIO_TO_REPORT 用来计算当前记录的指标expr占开窗函数over中包含记录的所有同一指标的百分比. 这里如果开窗函数的统计结果为null或者为0,就是说占用比率的被除数为0或者为null, 则得到的结果也为0. 开窗条件query_partition_clause决定被除数的值, 如果用户忽略了这个条件, 则计原创 2009-06-24 09:10:00 · 7437 阅读 · 0 评论