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

来源:互联网 发布:普法网络知识竞赛 编辑:程序博客网 时间:2024/05/29 16:46
--如何提高数据的查询效率
索引:提高查询的效率

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;
0 0
原创粉丝点击