1. 程式人生 > >:提高查詢的效率 建立定時任務

:提高查詢的效率 建立定時任務

--如何提高資料的查詢效率
索引:提高查詢的效率

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;