--如何提高数据的查询效率
索引:提高查询的效率
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;