谁能帮我解释下
跑批何解?
跑批何用?
以及性能的优化?
用的是Oracle
==感谢

解决方案 »

  1.   

    跑批就是把sql语句做成批处理语句,保存为bat文件,然后运行该bat文件性能优化就大了。
      

  2.   

    哦 多谢! 
    那您清楚怎样优化吗?
    难道是优化sql语句?
      

  3.   

    1、建立索引
    2、优化sql语句
    1)sql中不要用in(not in)要用exists(not exists)
    2)尽量不要使用distinct、group by、order by、having等语句
    3)select后面不要用*,要写具体字段,需要查询个数时,用select count(1) from 表 where 条件
    4)多表联合查询时尽量减少条件的取值范围,比如员工表和部门表需要做连接
      select 员工表.字段 from 员工表,部门表 where 员工表.字段 = 部门表.字段-----这种效率不高
      select 员工表.字段 from 员工表 
        where 员工表.字段 = (select 部门表.字段 from 部门表 where 条件)--这种效率就会提高些
    5)即时commit
      

  4.   

    1)sql中不要用in(not in)要用exists(not exists
    2)尽量不要使用distinct、group by、order by、having等语句
    3)select后面不要用*,要写具体字段,需要查询个数时,用select count(1) from 表 where 条件
    4)多表联合查询时尽量减少条件的取值范围,比如员工表和部门表需要做连接
      select 员工表.字段 from 员工表,部门表 where 员工表.字段 = 部门表.字段-----这种效率不高
      select 员工表.字段 from 员工表  
      where 员工表.字段 = (select 部门表.字段 from 部门表 where 条件)--这种效率就会提高些
    5)即时commit打红色的都不太了解,能给个解释吗。有例子就更好了!
      

  5.   


    1、使用in是全表扫描后面的条件会全部执行完毕,使用exits是只要找到结果就返回,这样避免多余的查询。
    2、还用distinct等关键字,官方解释是会启动SQL引擎,执行耗费资源的排序(SORT)功能。我个人理解就是需要把查询结果读到内存,然后排序,比较是否有重复的记录,重复则删除。
    3、使用count(1)只根据查询结果集的个数来计算条数,count(字段或*)需要额外有个查询这个字段的动作,效率会低点
      

  6.   

    是不是存储过程批量执行一些sql语句
      

  7.   

    现在的RDB,优化无语法,不同的SQL写法,也许殊途同归,关键看执行计划,这里面内容很多。
      

  8.   

    ---例子连接不同数据库建立同义词对象实现方法:
    在sql文件中写入 如下 :
    Set Echo      Off
    Set Embedded  On
    Set Feedback  Off
    Set Pagesize  50000
    Set Recsep    Off
    Set Verify    Off
    Set Heading   Off
    Set Long      32000
    Set Linesize  1000
    Set Timing    Off
    Set TrimSpool OnSPOOL ..\SQL1.SQL
    select 'create synonym H_MARKING_COUNT_NEW05 for '||username||'.H_MARKING_COUNT_NEW05;' from all_users
    where username like 'BDJF_%';
    SPOOL OFF@@..\SQL1.SQL然后在命令行输入
    sql> @sjbb #连不同数据库调sql文件。同时生产sql1.sql 文件执行