oracle查询语句讲解
oracle绑定变量查询?
oracle绑定变量查询?
绑定变量是为了减少解析的,比如你有个语句这样
select aaa,bbb from ccc where dddeee
如果经常通过改变eee这个谓词赋值来查询,像如下
select aaa,bbb from ccc where dddfff
select aaa,bbb from ccc where dddggg
select aaa,bbb from ccc where dddhhh
每条语句都要被数据库解析一次,这样比较浪费资源,如果把eee换成“:1”这样的绑定变量形式,无论ddd后面是什么值,都不需要重复解析
如果你用数据仓库,一条大查询一跑几个小时,根本没必要做绑定变量,因为解析的消耗微乎其微,而且绑定变量对优化器判断执行路径也有负面影响。
oracle job使用详解?
oracle中的job能为你做的就是在你规定的时间格式里执行存储过程,定时执行一个任务。
初始化相关参数job_queue_processes
alter system set job_queue_processes39 scopespfile;//最大值不能超过1000 ;job_queue_interval 10 //调度作业刷新频率秒为单位
job_queue_process 表示oracle能够并发的job的数量,可以通过语句
show parameter job_queue_process;
来查看oracle中job_queue_process的值。当job_queue_process值为0时表示全部停止oracle的job,可以通过语句
ALTER SYSTEM SET job_queue_processes 10;
来调整启动oracle的job。
mysql查询语句和oracle查询语句的差别大吗?l?
首先是大体一致的,只是分页查询时oracle用的伪列(rownum),mysql用的是limit,具体的可以百度一下分页;
另外oracle对sql语句要求更为严格,而且oracle里变量较mysql更多点,oracle中有number型,有大数据类型,mysql没得;
另外举个例子,oracle不能插入为空列,而mysql是可以的(个人觉得,不知道正确与否)。还有他们两者函数有不同之处,如转日期函数oracle是to_date(要转的字符串,格式) -- select to_date(2004-05-07 13:23:44,yyyy-mm-dd hh24:mi:ss) from dual,而mysql是str_to_date(08/09/2008, %m/%d/%Y) -- 2008-08-09//都是针对字符串转日期来的。
还有一点,我们常常希望主键可以自动增长,避免我们插入数据时的重复问题,但是oracle不能设置列自动增长,而mysql是可以的,oracle可以用序列加触发器来解决自动增长问题达到与mysql一样的效果。
总体来说百分之九十的sql语句是没区别的。总体来说oracle的格式严格点,对有些字符型的还必须加单引号才能插入,mysql要求就没这么多了。还有当向数据库插入一个日期时,mysql可以直接插入成功,但是oracle需要先转化为sql里面的日期类型才行;oracle较mysql而言更安全,但是收费的,一般大公司用的多。oracle还有存储过程和函数,触发器这些这是mysql没有的。大体就是这样吧。