在创建一个视图时,没有明确指定列,但后来发现oracle自动给我指定了列,而且顺序还不正确,请问这是为什么,是oracle还是PL/Sql做的?创建视图脚本如下:
create view test
as
select a.a_col_a,b.* from a,b;当时使用pl/sql工具创建后查看该视图没问题,但过阵后(应该没其他特别操作)创建该视图的脚本变为了:
create view test
(a_col_a,b_col_a,b_col_b)
as
select a.a_col_a,b.* from a,b;甚至有可能是:
create view test
(a_col_a,b_col_b,b_col_a)
as
select a.a_col_a,b.* from a,b;请问这是为什么?
初来贵地,无分,忘见谅!
create view test
as
select a.a_col_a,b.* from a,b;当时使用pl/sql工具创建后查看该视图没问题,但过阵后(应该没其他特别操作)创建该视图的脚本变为了:
create view test
(a_col_a,b_col_a,b_col_b)
as
select a.a_col_a,b.* from a,b;甚至有可能是:
create view test
(a_col_a,b_col_b,b_col_a)
as
select a.a_col_a,b.* from a,b;请问这是为什么?
初来贵地,无分,忘见谅!
我想这是Oralce优化的结果
避免每次在对这个视图检索的时候重新进行select * => select A,B,C…… from XXX 的转化
不是很确定,只是猜测,以前确实没注意过
楼主很细心,赞
优化固然是好事,但不甚清楚oracle机制,
不知道它自动“优化”后,为什么字段顺序会改变呢?
如果真是自动优化,那是不是可以有选项控制不进行优化,可能在小数据量的情况下都不用考虑这些性能问题。
Oralce在绝大部分的情况下,比我们要聪明
请相信Oracle的优化选择
我关心的只是我的视图字段顺序为什么被改变了,
当然,也不排除是我自己使用了某些操作后造成的,但就是一直找不到原因!