前两天去面试
面试到最后一关:
那个面试的出了一道这样的问题:
select id , name , record from abc where id = 1 and name ='XXX'
假设 abc 表 没有任何 索引和主键
请问 在10亿的记录量来算,
这个语句要耗时多久? 或者写出公式
第二个问题是 如果在这个表上面 添加唯一和索引,请问耗时是多少:?(不计算硬件条件 - -!~ )
面试到最后一关:
那个面试的出了一道这样的问题:
select id , name , record from abc where id = 1 and name ='XXX'
假设 abc 表 没有任何 索引和主键
请问 在10亿的记录量来算,
这个语句要耗时多久? 或者写出公式
第二个问题是 如果在这个表上面 添加唯一和索引,请问耗时是多少:?(不计算硬件条件 - -!~ )
解决方案 »
- 在线急求 先谢谢
- 请教 手工配置Oracle 11g Enterprise Manager时出错原因
- 两个日期的天数差
- OCILogon登录数据库时阻塞时间太长
- java调用oracle存储过程返回含有SYS_REFCURSOR的结果集
- 音乐文件,存放在数据库里面,用blob字段,还是放在某文件夹,在数据库里面放地址,请赐教!
- 关于表中每个字段值用另一张表来界定值的设计问题?
- 关于在视图中运算的问题,急
- sql中语句能否实现记录连乘的功能?
- oracle存储过程,第一次写,求大神们指点。。。在线求解。。。。。
- 在线求助:UNIX,LINUX平台ORACLE_HOME目录备份可否在数据加OPEN的时候进行
- 一个问题
你说,select 语句 的执行顺序 , 那些 还好答
但, 要答这个的话, 我真的不知道如何答
感觉是要求写出SQL的执行原理,又似乎是高深的如何计算数据库时间的算法?调侃下,最简单的
SQL> set timing on;
SQL> select id , name , record from abc where id = 1 and name ='XXX'
SQL> set timing on;
应该是的了, 最后面试官 问我 这个SQL 的执行顺序
我就说 先筛选where的, 然后再查出来
这样回答如何?
就意味着不管使用任何查询条件进行SELECT,必定走全表索引2、10亿计算量
那可以引发另外一个问题,ORACLE内存限制,如果我没记错的话,FOR WIN2k应该是2G.
剩下的事情,就可以随便策一下,假设1行记录当多少字节计算。
例如:ID字段是数字型,如何云云,RECORD字段,如果做为CLOB当如何云云,
自然而然就到了 【写出公式】 这个问题。3、当然,SELECT这句话,本身还意味着另外一个意思,CBO与RBO.
你可以从9i和11g这两个版本上的默认优化方式说几句。第二个问题是 如果在这个表上面 添加唯一和索引,请问耗时是多少:?
--这一点不是很确定,就当我没说
4、已有数据添加主键或索引时,会在内存表内建立建对应的索引表,如果超过内存上限,肯定是会失败的。5、需要补充一点的是,从查询条件上假设ID字段为数字型,
那么在该字段上建立的索引会比在NAME字段上建立索引更为快速,
如果ID字段为字符型,那么在该字段上是否建立索引,都无法提高查询速度。
因为如果ID字段为字符型,where id=1 将等同于 where to_number(id) = 5,
由于存在隐式转换,所以ID字段落上的索引不会得到使用