加速可以建立相关的索引,不同索引存放不同分区,数据表本身放于不同分区,嵌套时将数据量大的放到外层等;但如果我现在有3000W条数据,对应表中的有一个ID,其建立了索引已经(表结构的东西已已经不可改动了,也就是不使用相关的分区得技术了),现在我想查id='55555555'一个特定值的,问一下这个过程会要多久,大家讨论看一下;
想给200分的,可是却最多只让我给100分;哈哈,明天再加分吧
想给200分的,可是却最多只让我给100分;哈哈,明天再加分吧
解决方案 »
- Oracle忘光光了。。。
- ORA0-00902 无效数据类型
- 一名学习oracle。pl/sql的新手。请过来大师们给推荐个书,循序渐进的看下。谢谢/null
- INSERT语句中套用Select语句出错ORA-00936,另自增字段的解决方法
- oracle 将vchar 类型的column改为clob
- 诚心请教oracle9i建库建表步骤和方法
- 高手请进!一个SQL语句的统计问题!!!
- ora-01041错误,采用Delphi的BDE或Ado连接错误,在线等待,提供解决方法,有分!
- 修改用户密码后,提示end of file communation channel.谢谢帮助!
- PLSQL使用decode语法嵌套select
- 求一个算日期的方法。
- oracle 行转列
情景我已经说出来了,我就是想看看这个速度有多快啊
--插入1000万条数据
SQL> create table test_A(id number(20) primary key,name varchar2(40));Table createdSQL> select * from test_a; ID NAME
--------------------- ----------------------------------------
create or replace procedure pro_test as
begin
for i in 1 .. 10000000 loop
insert into test_a values (i,'name'||'''||i||''');
end loop;
commit;
end;Done in 0.141 secondes
SQL> exec pro_test;PL/SQL procedure successfully completedSQL> set timing on
SQL> select count(*) from test_a; COUNT(*)
----------
10000000Executed in 5.625 secondsSQL> select count(*) from test_a; COUNT(*)
----------
10000000Executed in 3.703 secondsSQL> select count(*) from test_a; COUNT(*)
----------
10000000Executed in 2.484 seconds
SQL> select * from test_a where id=100; ID NAME
--------------------- ----------------------------------------
100 name'||i||'Executed in 0.078 seconds
如果按照其他非主键字段分区,那么oracle将会按照这个id=‘55555555’进行多个分区的查询,
--测试表t_pc_vehicle 数据量2500W--车牌号 带索引 (可重复,具体看重复数多少了,我这个查出是一条的),查询时间0.17秒
select * from t_pc_vehicle v where v.vehicle_no = 'TD沪A-3333' --media_name 没有索引 ,查询时间108秒
select * from t_pc_vehicle v where v.media_name = 'abc'
没有具体的定论
不过一些最基本的规则不管是Oravle还是SQL都要遵守的