服务器-oracle千万级查询速度问题

问题描述

oracle千万级查询速度问题

一个2、3w的服务器,现有数据1500w左右,按月分区,大约有10几个分区。
查询两个一个上月的数据,查询时间在100s多,客户直接受不了了,是否可以秒开?
如何优化?

解决方案

为什么要一次性返回全部数据呢?那样当然慢,可以分页。另外,你是怎么查询的,有没有对条件加上索引。

解决方案二:

把一些常用数据放cache,内存中。查询数据库就刷新内存。这样只有第一个慢。

解决方案三:

你可以利用oracle的分批次查询,比如:SELECT *

FROM (
SELECT ROWNUM SN, t.*

FROM TABLE_NAME t
ORDER BY ROWID
)
WHERE SN>5000
AND SN<=10000
最好不要一次性查询那么多数据,分批次查询可以减少程序对数据库的访问压力,而且每次访问一万左右的数据我相信是可以做到秒开的!!

解决方案四:

请上传explain plan

解决方案五:

可以修改执行计划,或者创建索引,or增加查询的并行度这个需要oracle查询提示。

时间: 2024-11-26 19:11:29

服务器-oracle千万级查询速度问题的相关文章

Oracle临时表 优化查询速度

oracle|临时表|速度|优化 1.前言    目前所有使用Oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量.当然在Oracle中创建分区是一种不错的选择,但是当你发现你的应用有多张表关联的时候,并且这些表大部分都是比较庞大,而你关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得到这个结果集的速度非常快,那么这个时候我考虑在Oracle中创建"临时表".    我对临时表的理解:在Oracle中创

oracle千万数据快速查找满足max条件的数据行示例

场景 假设我们有这样的一个访问记录表accessTable,记录项分别为用户唯一标识(userId).访问时间(visitTime).访问时上报的版本信息(ver).需求为查询每个用户最近一次访问时上报的版本是什么,环境是在oracle下.本人非DBA,有问题一定要指出来啊. 思路一 使用oracle的分析函数.具体函数使用见这里. SELECT * FROM (SELECT t.userId, t.visitTime, t.ver, Row_number() OVER( partition B

oracle查询速度会因具体的条件变慢

问题描述 oracle查询速度会因具体的条件变慢 select语句的结构完全一样,只是把其中一条where条件由='TCP14'改为='TCP17', 查询速度就由原来的瞬间变成3秒.我查看了TCP14下数据量和TCP17下数据量是差不多的. 请问原因和解决办法 解决方案 这个原因很多,cbo优化器根据代价来计算取最优的方式,你的这个问题可以把执行计划贴上来看看,原因的话很多可能,举个简单的,假如你的表存在10个数据块上,t14的数据存在前2个块上,而t17的数据分别存在第一个块,中间一个块,最

一次千万级别的SQL查询简单优化体验

背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用一个or条件,条件里面有一个是A.ID=B.ID 简单优化:将or条件拆开,使用union all:将之前使用表变量的部分换成了临时表:对排序的字段加上了索引 结果:在50ms内能够查询出结果,这个与之前的超时简直不能相比. 感想:感谢DBA mm的帮助,让我有了这样的体验,不实际的处理(哪怕很简单

MS SQL Server查询优化方法(1)●查询速度慢的原因很多,常见如下几种:

server|速度|优化 MS SQL Server查询优化方法(1) ●查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源.9.返回了不必

SQL数据库如何加快查询速度?

  1.升级硬件 2.根据查询条件,建立索引,优化索引.优化访问方式,限制结果集的数据量. 3.扩大服务器的内存 4.增加服务器CPU个数 5.对于大的数据库不要设置数据库自动增长,它会降低服务器的性能 6.在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能.如果表很大,在表扫描的期间将表锁住,禁止其他的联接访问表,后果严重. 7.查询时不要返回不需要的行.列 8.用select top 100 / 10

新浪微博千万级规模高性能、高并发的网络架构经验分享

[本文转载自新浪微博千万级规模高性能.高并发的网络架构经验分享] 架构以及我理解中架构的本质 在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上要重视它,战术上又要藐视它. 先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右.对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写

千万级规模高性能、高并发的网络架构经验分享

千万级规模高性能.高并发的网络架构经验分享 主 题 :INTO100沙龙时间 :2015年11月21日下午地点 :梦想加联合办公空间分享人:卫向军(毕业于北京邮电大学,现任微博平台架构师,先后在微软.金山云.新浪微博从事技术研发工作,专注于系统架构设计.音视频通讯系统.分布式文件系统和数据挖掘等领域.) 架构以及我理解中架构的本质 在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐

千万级并发实现的秘密:内核不是解决方案,而是问题所在!

既然我们已经解决了 C10K并发连接问题,应该如何提高水平支持千万级并发连接?你可能会说不可能.不,现在系统已经在用你可能不熟悉甚至激进的方式支持千万级别的并发连接. 要知道它是如何做到的,我们首先要了解Errata Security的CEO Errata Security,以及他在Shmoocon 2013大会上的"无稽之谈"-- C10M Defending The Internet At Scale. Robert用一种我以前从未听说的方式来很巧妙地解释了这个问题.他首先介绍了一