:提高查詢的效率 建立定時任務
阿新 • • 發佈:2019-01-23
--如何提高資料的查詢效率
索引:提高查詢的效率
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;
索引:提高查詢的效率
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;