`
itspace
  • 浏览: 978973 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

取得数据库全表扫描的语句(get_fullscan_table)

SQL 
阅读更多
一:创建plan_table,数据库在默认情况下是没有创建此表的。


SQL> @?/rdbms/admin/utlxplan

Table created.

SQL> create public synonym plan_table for plan_table;

Synonym created.

SQL> grant all on plan_table to public ;

Grant succeeded.

SQL> @?/sqlplus/admin/plustrce

二:创建收集全表扫描语句

create table full_sql (sql_text varchar2(1000), executions number);
create or replace procedure p_findfullsql as

v_csr number;
v_rc number;
v_string varchar2(2000);

v_count number;


cursor c1 is select sql_text,executions from v$sqlarea where lower(sql_text) like '%select%';

begin

for x1 in c1 loop

delete from plan_table ;
Begin
v_Csr := DBMS_SQL.OPEN_CURSOR;
v_string := 'explain plan for ' ;
v_string := v_string||x1.sql_text ;
DBMS_SQL.PARSE(v_csr, v_string, DBMS_SQL.V7);
v_rc := DBMS_SQL.EXECUTE(v_csr);
DBMS_SQL.CLOSE_CURSOR(v_csr);
Exception
when others then
null;
End ;

select count(*) into v_count from plan_table where options like '%FULL%' and operation like '%TABLE%' ;
if v_count > 0 then
insert into full_sql(sql_text,executions) values (x1.sql_text, x1.executions) ;
end if;
end loop ;
commit;
end ;
/
execute p_findfullsql ;
select * from full_sql;
drop table full_sql;

通过select * from full_sql;可以知道执行全表扫描的语句,加以着重研究,比如可以讲小表放入keep_buffer,让其常驻内存
分享到:
评论

相关推荐

    SQL查询语句精华总结

    优化SQL查询包括合理设计索引,避免全表扫描,减少JOIN操作,使用存储过程等策略。 以上是SQL查询语句的精华总结,掌握这些核心概念和用法,能帮助开发者在实际工作中更高效地操作数据库。通过不断实践和学习,可以...

    db2学习笔记(个人总结)

    在处理大量数据时,避免全表扫描至关重要。可以使用索引来提升查询速度,尤其是对用于排序和分页的列建立索引。同时,合理设计数据库架构,如预计算分页结果,或者使用物化视图,也能有效提高性能。 在实际应用中,...

    java 数据库更新

    9. **数据库优化**:更新操作可能影响数据库性能,因此需要考虑索引的使用、避免全表扫描、合理设计数据库结构等优化策略。 10. **ORM框架**:虽然JDBC可以直接操作数据库,但复杂的数据库操作往往需要使用ORM...

    Android数据库SQLite.zip

    这包括合理设计数据表结构,避免全表扫描,使用索引,以及及时关闭数据库连接等。 总之,“Android 数据库SQLite.rar”文件很可能包含了一系列有关Android中SQLite数据库使用的详细教程和实践案例,帮助开发者了解...

    使用Java进行SQL数据库设计

    以及避免全表扫描,使用JOIN操作时要谨慎,以防止性能下降。 此外,事务管理是保证数据库操作一致性的重要手段。在Java中,我们可以利用JDBC的Transaction API或Spring框架的@Transactional注解来实现事务控制。 ...

    SQL语句封装

    在封装SQL时,考虑SQL的执行效率,合理使用索引,避免全表扫描,减少JOIN操作,以及适时地进行SQL缓存。 综上所述,SQL语句封装是提高开发效率、保证代码质量的重要手段。通过不同的封装方式,我们可以根据项目需求...

    数据库的插入、删除、更新等操作

    - 避免在`WHERE`子句中使用`LIKE`操作符,除非必要,因为这可能导致全表扫描。 8. **备份与恢复** Android提供了`SQLiteAssetHelper`库,可以帮助将预定义的数据库文件打包到应用的assets目录中,便于初始化...

    利用数据库实现的单词查询java编写

    同时,合理设计数据库表结构和查询语句,避免全表扫描。 7. **异常处理**: 在Java程序中,务必捕获并处理可能发生的数据库相关异常,如`SQLException`,以确保程序的健壮性。 8. **数据库连接管理**: 连接...

    JDBC.rar JDBC Sql MySql 数据库 包,可提供新手方便

    同时,了解SQL的最佳实践,如避免全表扫描、使用索引、适当的数据类型选择等,对于提高数据库性能至关重要。 此外,还需要掌握异常处理,确保在数据库操作中遇到错误时能正确地捕获和处理。最后,理解事务...

    数据库MySQL进阶实战

    索引优化是提升查询速度的关键,应根据查询模式合理设计索引,避免全表扫描。查询优化则需要理解SQL执行计划,适当使用JOIN、子查询、临时表等技术,以提高查询效率。 MySQL的基本SQL语句主要包括数据定义(DDL)、...

    hibernate数据库相关操作步骤

    - 优化HQL和SQL:避免全表扫描,利用索引,减少子查询。 总结起来,使用Hibernate进行数据库操作主要包括配置、实体定义、映射、操作数据库、事务管理、缓存和优化等方面。通过理解并熟练掌握这些步骤,开发者可以...

    MySQL学习笔记5-数据库性能优化与扩展.md

    优化查询逻辑,避免不必要的全表扫描,提高查询效率。 - **使用JOIN查询**:替代子查询可以提高性能。例如: ```sql SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id; ``` - **限制...

    程序结合SQL语句结构,动态实现SQL多条件查询语句代码

    此外,对于大数据量的查询,我们还可以考虑优化查询性能,如合理使用索引、避免全表扫描、限制查询结果的数量等。同时,对于SQL注入等安全问题,应始终使用预编译语句,并对用户输入进行适当的验证和清理。 总之,...

    oracle面试题70问及答案.pdf

    8. **使用索引**:索引用于加速数据检索,减少全表扫描。 9. **STAR SCHEMA中的表**:Fact Table存储事实数据,Dimension Table存储描述性数据。 10. **Fact Table上的索引**:通常使用位图索引以优化大量维度关联...

    PHP+MySQL动态网站开发实例教程

    - 查询优化:避免全表扫描,合理设计数据库表结构,减少冗余数据。 8. 安全性: - 防止SQL注入:使用预处理语句或参数化查询,避免用户输入的恶意代码影响数据库。 - 输入过滤:对用户输入进行适当的清理和验证...

    java程序员日常收集的DB2资料(仅供参考)

    - **查询优化**:分析SQL执行计划,调整索引和查询语句,减少全表扫描。 - **内存设置**:适当调整DB2的缓存大小,提高数据读取速度。 - **并发控制**:根据系统负载调整并发连接数,避免资源争抢。 6. **安全与...

    mysql 入门教程

    - 查询优化:避免全表扫描,合理设计查询语句,利用索引。 - 表设计:适当的数据类型选择、正常化设计等能提高数据库性能。 9. 视图和存储过程: - 视图:视图是虚拟表,基于一个或多个表的查询结果,提供更安全...

    HIbernate与oracle数据库应用例子

    - SQL优化:避免全表扫描,合理使用JOIN,避免N+1查询问题。 - 分页查询:使用`setFirstResult()`和`setMaxResults()`实现分页,减少内存消耗。 八、问题与解决方案 - 数据类型匹配:确保Java类型与Oracle数据库...

    Mysql获取id最大值、表的记录总数等相关问题的方法汇总

    - 在处理大量数据时,避免无条件地使用`COUNT(*)`,这可能会导致全表扫描,降低性能。 - 使用`SHOW TABLE STATUS`可以快速获取表的信息,但请注意它返回的是表的统计信息,可能不是实时数据。 了解并熟练掌握这些...

    PHP的面试题集收集整理.doc

    面试题7:优化MySQL数据库的方法包括但不限于:合理设计数据库表结构、使用索引、避免全表扫描、减少JOIN操作、定期清理无用数据等。 面试题8:事务处理涉及ACID特性,用于确保数据库操作的原子性、一致性、隔离性...

Global site tag (gtag.js) - Google Analytics