ORACLE 11G学习笔记15—检索性能优化

一、【常规SQL语句优化】 truncate 写出存储过程动态删除表的SQL并加注释…
create or replace procedure trun_table(table_deleted in varchar2) as
–创建一个存储过程,传入一个表示表名称的参数,实现清空指定的表
cur_name integer;–定义内部变量,存储打开的游标
begin
cur_name := dbms_sql.open_cursor; --打开游标
dbms_sql.parse(cur_name,‘truncate table’||table_deleted||‘drop storage’,dbms_sql.native);
–执行truncate table tb_name的命令,实现清空指令的表
dbms_sql.close_cursor(cur_name); --关闭游标
exception
when others then dbms_sql.close_cursor(cur_name);–定义异常,出现异常时,关闭游标
raise;
end trun_table;
/
在这里插入图片描述
二、commit释放哪些资源?列出4条…
1、回滚段上用于恢复数据的信息,撤销表空间也只做短暂保留;
2、被程序语言获得的锁;
3、redo log buffer 中的空间;
4、oracle为管理上述资源的内部花费。

三、查询A和B表,A字段没索引,B字段有索引,哪个表作为驱动表比较合适?为什么?你能总结出什么?
B表作为驱动表比较合适
在执行ORACLE语句时,以从右到左的顺序处理表连接,因此应该将B表(即没有创建索引的表)放在from子句的最右边。

四、建索引事务基本原则?
1、以查询关键字为基础,表中的行随机排列;
2、包含的列数相对比较少的列;
3、表中的大多数查询都包含相对比较简单的where子句;
4、经常以查询关键字为基础的表,并且该表中的行遵从均匀分布;
5、缓存命中率低,并且不需要系统操作权限。

五、写出创建复合索引的示例SQL,并写出自己的总结…
create index complex_index on
tb_test(column1,column2,column3…)
建立索引时采用了几个列作为索引,则在使用时也要按照建立是的顺序来表述,即主列是最先被选择的列。

六、查看整车测试数据库,找出一个你认为需要建立复合索引的表,并给出SQL代码…
在这里插入图片描述

七、explain plan 优化器的作用是什么?
Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径。从而使我们选择最优的查询方式达到最大的优化效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值