oracle 查询 数据量大 速度很慢

问题描述

具体需求是这样的:查询库存(库存实时变动的,变动不频繁可以用物化视图,但是实际很频繁),建立视图查询速度很慢,虽然能查出来但是速度真的好慢,客户抱怨了好多回了。请教下诸位有什么好办法没

解决方案

1)首先要确定是不是数据量大造船的,检查方法在原有SQL条件下面缩小范围,比如以前查1个月,现在查一分钟.以前查1W商品,现在查10个商品. 2)如果小数据查询也慢,那就缩小范围了,优化索引,不仅仅是简单数据量大造成的.3)如果小数据查询快,大数据查询慢,并且几乎是线性的. 那么几乎是无解吧,就好比你复制文件一样,硬盘速度就是瓶颈,无法突破,除非你用分布式,RAID,或者是升级网络,加大内存之类.但是有一个比较取巧的办法:分页. 因为如果你的数据只是给人看,你可以通过Rownum取出一部分数据,给人先看,后面的接着去取.
解决方案二:
数据量大,但不知道到底多少的数量级。第二,查询慢不要怪视图。第三,多跟踪一下,查询慢是不是索引优化没做好。
解决方案三:
嗯,最基本的优化就索引了,还有就是sql语句优化。
解决方案四:
有索引么,查询速度提高N倍

时间: 2024-10-06 11:15:16

oracle 查询 数据量大 速度很慢的相关文章

mysql 查询数据量过大时,索引失效,怎么强制使用索引

问题描述 mysql 查询数据量过大时,索引失效,怎么强制使用索引 解决方案 MYSQL强制使用索引和禁止使用索引mysql 强制索引mysql强制索引 解决方案二: 你的sql语句是否有合法的应用到索引,是不是导致索引失效

求助:mysql 查询数据量过大时,索引失效

问题描述 求助:mysql 查询数据量过大时,索引失效 mysql 查询数据量过大时,索引失效,怎么让他使用索引来查询 解决方案 先要看你的sql语句是否有问题,导致没有利用上索引 解决方案二: 楼主把你的sql..场景都说清楚一点大家才能帮忙分析. 解决方案三: mysql索引失效的情况

数据仓库 hadoop-数据仓库基础数据量大,ETL处理速度慢,查询慢,hadoop能否解决问题?如何迁移到hadoop?

问题描述 数据仓库基础数据量大,ETL处理速度慢,查询慢,hadoop能否解决问题?如何迁移到hadoop? 1.基础数据主表2亿以上数据 2.基础层到中间层的汇总处理(每天处理),ETL处理比较花时间 某些任务一个小时左右才能处理完 3.SQL已经无法再优化 4.这种情况想到hadoop,不知hadoop是否能解决,如何解决? 5.我以下思路是否可行: 基础数据导入hadoop, ETL处理过程由hadoop处理,处理结果再导回数据库 6.问题hadoop中如何进行多表关联查询或者类似存储过程

asp.net高效的分页方法超大数据量大并且带查询参数

asp教程.net高效的分页方法超大数据量大并且带查询参数 create   Proc [dbo].[GetRS] @QueryStr nvarchar(300),--表名.视图名.查询语句 @PageSize int=10,--每页的大小(行数) @PageCurrent int=1,--要显示的页 @FdShow nvarchar (100)='',--要显示的字段列表,如果查询结果有标识字段,需要指定此值,且不包含标识字段 @FdOrder nvarchar (100)='',--排序字段

浏览器 双屏-开发gis的时候,因为数据量大,所有要用两个显示器,

问题描述 开发gis的时候,因为数据量大,所有要用两个显示器, 采用window.open()来弹出一个新窗口,测试使用html页面的时候能成功,窗框铺满了两个显示器,但是加到项目过后,后台使用的是springmvc,弹出新窗口怎么都不行,这种问题能决解吗?

java map中写入的数据量大,入库也慢导致浏览器假死

问题描述 java map中写入的数据量大,入库也慢导致浏览器假死 由于前台要选中8000行左右的记录,提交后写入到map中,然后再从map中取出后插入到相应的表中,这时非常费时.目前插入操作也是指提交,但是提交后,目前浏览器经常会碰到假死的现象,大家有好的办法解决吗? 解决方案 你的设计有问题,批量选择,在界面上应该提供单独的设计,不是展示全部8000的记录,而是允许用户根据字段的范围来选择,界面上用可以懒惰加载和预览的方式呈现数据. 解决方案二: 数据要进行分页操作,分批插入,分批显示 解决

oracle sql sql-SQL Oracle 查询数据,汇总数据 oracle数据查询

问题描述 SQL Oracle 查询数据,汇总数据 oracle数据查询 序号 数量 日期 1 1 20131001 2 1 20131007 3 8 20131008 4 9 20131009 5 5 20131010 使用SQL语句查询出这样的结果: 1 1 20131001 2 2 20131007 3 9 20131008 4 17 20131009 5 22 20131010 也就是数量这一列为当天数量加上前一天的数量,谢谢 解决方案 假设存储这些数据的表名为cal_amount,su

针对Sqlserver大数据量插入速度慢或丢失数据的解决方法

我的设备上每秒将2000条数据插入数据库,2个设备总共4000条,当在程序里面直接用insert语句插入时,两个设备同时插入大概总共能插入约2800条左右,数据丢失约1200条左右,测试了很多方法,整理出了两种效果比较明显的解决办法: 方法一:使用Sql Server函数: 1.将数据组合成字串,使用函数将数据插入内存表,后将内存表数据复制到要插入的表. 2.组合成的字符换格式:'111|222|333|456,7894,7458|0|1|2014-01-01 12:15:16;1111|222

关于数据库更新数据量大回滚的问题!

问题描述 请教!如果数据库一次更新的数据量 回滚是否就失效了! 问题补充:就是如果一次更新的数据太多,是不是就超过事务回滚的限度 就无法回滚? 解决方案 oracle肯定不会出现这种情况,Oracle由undo_retention和undo_guarantee这两个参数控制,具体你可以查查,如果undo_guarantee设置的是强制保留,会导致dml操作hang住,不会继续.大数据的dml容易出现01555快照太旧的错误,建议分批处理,及时提交解决方案二:引用oracle肯定不会出现这种情况,