知深人士 我想问个位高手一个问题:对视图操作比较对表操作速度上有何差别 如:T1表中有30万条记录 V1视图是在T1表过滤后得到10万表记录 在对v1视图操作时会不会比直接通过SQL语句对T1表操作快为什么?请给点说明理由谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是的我明白你的意思但是视图是定义了SQL语句那数据库系统本身会对他有特别的处理吧这种特别的处理提高了速度!这是我个人观点 , 不能肯定所以才请各位高手指教啊!;) 视图把SQL事先编译好,查询时少了一个解析过程 视图会存储oracle的执行计划, 在多表连接等复杂的连接的情况下会缩短oracle分析执行计划的时间,但同样的sql语句的执行计划也会被缓存.所以多次执行的情况下,效率应该是接近的. 我做了测试.一个表table有id 索引 name上有索引 一个视图v_table为select * from table where table.name='OK'select * from table where table.name='OK'和select * from v_table的执行计划是一样的,理论上两个应该是一样快,受速度影响的可能是系统优化器在分析时的时间有点差异(个人观点). 一个父子关系的问题?! 原为number(9,2)的列,已经写有数据了;我调试时改成了number(38,19)了,想改回来却提示必须清空数据? oracle 参数作为表名 问题 多表查询后,怎么修改不了? 触发器问题.. 怎样把除数为0的报错关闭,急 ADO 2.x 无法完全返回CLOB字段的问题 事务处理,如何得知语句执行情况! oracel如何实现字段的自动排序,问题解决多给分 如何在Select * 语句查询结果中增加一列呢 关于GUID的问题 关于dba_jobs的问题,急,在线中。。。。
所以多次执行的情况下,效率应该是接近的.
和
select * from v_table
的执行计划是一样的,理论上两个应该是一样快,受速度影响的可能是系统优化器在分析时的时间有点差异(个人观点).