oracle中视图查询很快,移到到达梦库了查询视图非常慢,想建一个索引,没有找到方法,百度没有一条信息,救命🆘
我试了,也不行;
尴尬了;
如果可以换到方式想,你为何要移到答梦上去呢?
oracle不香吗?
如果你觉得它贵,
那mysql不 香吗?
有问题,来 交流呗
视图应该是没法建索引的,索引只作用在表上,而且不同的库,索引方式有所不同。
DM8是支持索引的,具体还是要参考官方文档。
达梦数据库索引创建定义如下:
CREATE [OR REPLACE] [CLUSTER|NOT PARTIAL][UNIQUE | BITMAP| SPATIAL] INDEX <
索引名>
ON [<模式名>.]<表名>(<索引列定义>{,<索引列定义>}) [GLOBAL] [<STORAGE 子句>]
[NOSORT] [ONLINE];
<索引列定义>::= <索引列表达式>[ASC|DESC]
<STORAGE 子句>::=<STORAGE 子句 1>|<STORAGE 子句 2>
<STORAGE 子句 1>::= STORAGE(<STORAGE1 项> {,<STORAGE1 项>})
<STORAGE1 项> ::=
[INITIAL <初始簇数目>] |
[NEXT <下次分配簇数目>] |
[MINEXTENTS <最小保留簇数目>] |
[ON <表空间名>] |
[FILLFACTOR <填充比例>]|
[BRANCH <BRANCH 数>]|
[BRANCH (<BRANCH 数>, <NOBRANCH 数>)]|
[NOBRANCH ]|
[<CLUSTERBTR>]|
[SECTION (<区数>)]|
[STAT NONE]
<STORAGE 子句 2>::= STORAGE(<STORAGE2 项> {,<STORAGE2 项>})
<STORAGE2 项> ::= [ON <表空间名>]|[STAT NONE]
参数
UNIQUE 指明该索引为唯一索引;
BITMAP 指明该索引为位图索引;
SPATIAL 指明该索引为空间索引;
CLUSTER 指明该索引为聚簇索引(也叫聚集索引),不能应用到函数索引中;
NOT PARTIAL 指明该索引为非聚簇索引,缺省即为非聚簇索引;
<索引名> 指明被创建索引的名称,索引名称最大长度128字节;
<模式名> 指明被创建索引的基表属于哪个模式,缺省为当前模式;
<表名> 指明被创建索引的基表的名称;
<索引列定义> 指明创建索引的列定义。其中空间索引列的数据类型必须是DMGEO
包内的空间类型,如ST_GEOMETRY等;
<索引列表达式> 指明被创建的索引列可以为表达式;
GLOBAL 指明该索引为全局索引,仅堆表的水平分区表支持该选项,非水平分区表忽略该选项。 堆表上的PRIMARY KEY会自动变为全局索引;
ASC 递增顺序;
DESC 递减顺序;
<STORAGE子句> 普通表的索引参考<STORAGE子句1>, HUGE表的索引参考<STORAGE子句2>;
<STORAGE子句1>中, BRANCH和NOBRANCH只能用以指定聚集索引;
NOSORT 指明该索引相关的列已按照索引中指定的顺序有序,不需要在建索引时排序,提高建索引的效率。若数据非有序却指定了NOSORT,则在建索引时会报错;
ONLINE 表示支持异步索引,即创建索引过程中可以对索引依赖的表做增、删、改操作。
看你建的视图类型了,普通视图不行,物化视图应该可以,你慢的原因
看你要建的视图类型:简单视图,复杂视图,物化视图。
可参考这个【达梦数据库中的视图、序列、索引】链接:https://www.codenong.com/cs105657611/
贴一下oracle和达梦的查询视图的执行计划看看。我帮你看看。另外,在表上建立适当索引,视图会自动使用,提高性能的。
视图上不支持建立索引。
现在不是都用mysql了?
https://www.codenong.com/cs105657611/
这篇文章详细得写了,希望对你有所帮助,有问题在探讨