我现在有一张表,四列,前三列均为INT,第四列为VARCHAR,现在我想比较一下单列Int和双列Int,以及单列Char之间的查询效率
SQL语句 select * from tablename where PID=100;
select * from tablename where ROW=10 and COL=10;
select * from tablename where ISCHAR ='code';
请问,上述三种方法哪种效率最高?有没有实验分析以及相应的时间比较?
急等!!!!谢谢~~
SQL语句 select * from tablename where PID=100;
select * from tablename where ROW=10 and COL=10;
select * from tablename where ISCHAR ='code';
请问,上述三种方法哪种效率最高?有没有实验分析以及相应的时间比较?
急等!!!!谢谢~~
另外就是环境相同,硬软件环境相同,索引也一样,可以都不建索引,也可以单建PID列索引,或者建ROW和COL索引,就是在这种情况下,看谁的查询效率高
我往一张表里存了45000条数据,测试了,前两个效率基本相同,但为什么第三个单查字符串和单查Int也差不多呢。
此想法源自影像中的MORTON编码,我现在还一直在想,MORTON编码到底能不能提高效率?
你开启时间看运行时间就知道 以及看分析计划就明白
set timing on
set autotrace on 不过查询效率跟字段类型应该没什么影响 只是跟数据量以及索引 有关
你说的那个“分析计划”在哪啊?
Sql Tools (F9) Toad (Ctrl+E)三、使用SQL*PLUS: 如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。 如果PLUSTRACE角色不存在,执行
$ORACLE_HOME/sqlplus/admin/plustrce.sql 1.sqlplus / as sysdba
set autotrace on; 关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询 2.执行sql