问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ORACLE 直接用SQL 很快 ,用视图很慢

发布网友 发布时间:2022-04-08 11:25

我来回答

4个回答

懂视网 时间:2022-04-08 15:46


SELECT o.object_name,
       o.object_type,
       a.event,
       SUM(a.wait_time + a.time_waited) total_wait_time
  FROM v$active_session_history a, dba_objects o
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
   AND a.current_obj# = o.object_id
GROUP BY o.object_name, o.object_type, a.event
ORDER BY total_wait_time;

--列出数据库中最后15分钟内最重要的等待事件
SELECT a.event,
       SUM(a.wait_time + a.time_waited) total_wait_time
  FROM v$active_session_history a
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
GROUP BY a.event
ORDER BY total_wait_time DESC;

--等待最多的用户
SELECT s.sid,
       s.username,
       SUM(a.wait_time + a.time_waited) total_wait_time
  FROM v$active_session_history a,v$session s
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
   AND a.session_id = s.sid
GROUP BY s.sid,s.username
ORDER BY total_wait_time DESC;

--确定等待最多的sql
SELECT a.user_id,
       s.sql_text,
       d.username,
       SUM(a.wait_time + a.time_waited) total_wait_time
  FROM v$active_session_history a, v$sqlarea s, dba_users d
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
   AND a.sql_id = s.sql_id
   AND a.user_id = d.user_id
GROUP BY a.user_id, s.sql_text, d.username;

dba_hist_active_sess_history:每60分钟,MMON后台进程都要刷新过滤了得ASH数据到磁盘,使其成为按小时的AWR快照的一部分。若ASH缓冲区已满,
则MMML后台进程进行数据的刷新。ASH数据被刷新到磁盘后,就不能在v$active_session_history视图中看到它了。此时要查看历史数据,就必须通过
dba_hist_active_sess_history视图。

段级动态性能视图:使用它们可以找出哪些表和索引正在使用大量资源或具有大量的等待。
v$segstat_name
v$segstat
v$segment_statistics

   

oracle一视图性能问题

标签:

热心网友 时间:2022-04-08 12:54

原因:
"SELECT * FROM (${你的sql语句})a" 等价于 " SELECT * FROM ${由你的sql创建的视图名称}"
也就是说, 属于一个查询里面套用子查询了, 得把你的sql语句全部查出来. 所以用
"EXPLAIN ${你的sql语句}" 你会看到有 "Using temporary; Using filesort" 全表查


"${你的sql语句}"
直接执行的话, 相当于就少了一层. 不用全表查, 可以很轻松的走索引了(如果有的话)

以上纯属个人见解, 若有不对, 还请大神们纠正.

热心网友 时间:2022-04-08 14:12

视图不会对查询速度造成任何影响,关键是要看你的sql语句.视图只是方便你的操作,将复杂的表连接在视图中完成。

热心网友 时间:2022-04-08 15:47

我也遇到了这个问题,楼主解决了没有啊
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
《孙子兵法》中哪一手段为上兵 《孙子兵法》中的上兵 10 孙子兵法上兵伐谋是什么意思 描写灶糖的古诗 关于腊八节的诗句古诗(腊八节的诗情画意) 为了事业和生活离家越来越远,古诗词怎么写 平铺机的正确使用方法 用平铺机铺瓷砖会平整吗 平铺机铺贴瓷砖的专用工具 平铺机几个档位最好 地砖平铺机功率多少 如何提高oracle视图的查询速度? oracle视图问题! oracle 视图能提高效率吗 对oracle分区表建立视图的性能问题 oracle数据库系统视图查询慢 Oracle 视图查询有的时候很慢,有的时候查询很快 vs2015中数据库用不了rowindex 在VS2015中向本机的数据库中插入数据 程序无报错 但是表中却没有插入的数据 第一次安装vs2015 sql建立数据库失败 就是那个服务器的原因吧 VS2015创建SQL Server时出现在与 SQL Server建立连接时出现与网络相关的特定 求助,VS2015怎么连接SQLite数据库,大神来吧 Visual studio 2015与wampserver如何建立sql数据库连接? 新手刚用C#VS2015怎么连数据库 visual studio 2015的数据库不能创建,求大神 vs2015创建数据库后不能添加新表 vs2015怎么建立数据库访问,shift alt c为什么不行 用2015版本的VS创建数据库 vs2015 mvc ef怎么创建数据库 vs2015怎么添加数据库 请问VS2015如何动态创建ACCESS数据库? Oracle如何实现利用实体化视图提高查询性能 Oracle 视图连接表效率问题 oracle视图问题 如何排除与Oracle SQL语句的性能问题 oracle物化视图日志是否影响数据库性能 oracle用视图和直接从表中查询从效率上有什么区别 sqlserver中怎么分页查询 数据库SQL查询分页问题 sql语句分页查询的问题 sql 分页查询 数据库高手请进 怎样知道SQL语句执行的时间 在mssql中如何查看某条SQL语句的执行时间 怎么查看执行sql语句时间 oracle 如何计算sql语句执行时间的时间 Java 获取SQL语句的执行时间 mongodb是非结构化数据库吗 mysql数据库问题:如下 试题求解 关于MYSQL优化 替别人求一套mysql面试题,要有详细答案的,最好是新一点的,链接与文字都可以,谢谢了 mysql 中 AUTO_INCREMENT 是什么意思为什么必须和主键搭配