包含列的 SQL Server 索引 - 转换为 Oracle

Posted

技术标签:

【中文标题】包含列的 SQL Server 索引 - 转换为 Oracle【英文标题】:SQL Server Indexes with Included Columns - convert to Oracle 【发布时间】:2018-06-26 19:32:41 【问题描述】:

我对 SQL Server 完全陌生。目前必须将表、索引、触发器等转换为 Oracle。据我所知,Oracle 中没有 INCLUDE 这样的东西。请问如何将包含列的索引转换为 Oracle 索引?

CREATE NONCLUSTERED INDEX [index_name] 
    ON [dbo].[table_name] ([col1] ASC, [col2] ASC)
    INCLUDE ([col3], [col4]) 
    WITH (PAD_INDEX  = OFF...

这是标准的 Oracle 语法:

CREATE INDEX index_name ON table_name (col1, col2);

我应该简单地将 col3 和 col4 添加到我的索引中吗?

没有 SQL Server 版本。我得到的只是文件并手动转换。 谢谢大家。

【问题讨论】:

请将您的评论复制到答案中。谢谢。 这能回答你的问题吗? Oracle equivalent to SQL Server included columns to index 【参考方案1】:

理论上应该可以。包含的列意味着它们在索引查找期间不用作谓词(在连接条件或 where 子句中),但这些列中的数据可以在没有键查找的情况下返回。

在现有键的末尾添加包含的列。确保你也测试了速度和索引大小。

Indexes with Included Columns

【讨论】:

以上是关于包含列的 SQL Server 索引 - 转换为 Oracle的主要内容,如果未能解决你的问题,请参考以下文章

包含列的索引:SQL Server索引的阶梯级别5

包含列的索引:SQL Server索引的阶梯级别5

[转帖]SQL Server 索引中include的魅力(具有包含性列的索引)

SQL Server 索引中include的魅力(具有包含性列的索引)

Sql Server关于create index include带有包含列的索引

包含列的索引:通往SQL Server索引级别5的阶梯