您的位置:首页 > 其它

:提高查询的效率 创建定时任务

2017-03-09 20:09 197 查看
--如何提高数据的查询效率

索引:提高查询的效率

1.常用的列放在前面

索引的分类:

单列索引 多列索引

唯一索引与非唯一索引

无论是唯一索引还是非唯一索引,索引列都允许取NULL值

标准(B-tree index,B树)索引

位图索引 适用于取值很少的列

创建索引的语法结构:

create [unique] index 索引名 on talbe(列名1,列名2,.....)

创建位图索引

create bitmap index idx_bm_job on emp(job);

select id,user_name,age,city from city where city in('上海','杭州')

1.JOB的作用是什么。

oracle提供的一个定期执行某个存储过程或者包体的功能。

--oracle提供的一个定期执行某个存储过程或者包体的功能。

sysdate+1 加一天

sysdate+1/24 加1小时

sysdate+1/(24*60) 加1分钟

sysdate+1/(24*60*60) 加1秒钟

定时任务的执行

DECLARE

  Jobid NUMBER; --声明一个job任务

BEGIN

  Dbms_Job.Submit(Jobid,

                  'pro_name;',   // 存储过程名称  

                  To_Date('20170309 1618', 'yyyymmdd hh24mi'), //下次执行时间 null:系统时间的零点

                  'SYSDATE+1/1440');   // 间隔多长时间执行一次 :null:永不执行

END;

-- 查找所有的job(broken)  Y(停止) N(运行)

select * from user_jobs;

 启动/停止job:  exec dbms_job.broken(4,false/true);  jobId,boolean,next_date

 删除job:       dbms_job.remove(jobno);

2.编写一个JOB,定时一分钟向一个表中插入一条数据,数据任意。

--创建一个存储过程

create or replace procedure pro_job_table

as

begin

insert into job_table values(seq_user.nextval,seq_user.nextval||'job');

end;

-- 创建一个job

declare

jobId number;

begin

Dbms_Job.Submit(jobId,'pro_job_table;',null,'sysdate+1/(24*60*60)');

commit;

end;

declare

jobId number;

begin

Dbms_Job.Submit(jobId,'pro_job_table;',to_date('20170309 172059','yyyymmdd hh24miss'),'sysdate+1/(24*60*60)');

commit;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: