nev*_*ind 4 sql oracle indexing plsql
我有一个小DB,仅用于学术目的,我最多有对象表.我在Power Designer中创建了一个实体关系模型(ERM),默认情况下,程序为每个表创建序列ID的索引.
select
value(s) from supplierf where s.name
LIKE '%search%' order by s.name
使用索引进行类似的搜索?我知道可以为名称创建索引,但对于像这样的搜索,我不知道它是如何工作的.让我说,我确实知道Oracle决定何时或是否值得在查询中使用索引,但我可能必须至少尝试在我的BD项目中使用索引
1.通过将列定义为PRIMARY KEY(这是您的id列最可能的列),Oracle隐含地为此列创建索引.当你有一个select时,它很可能会决定使用那个索引WHERE id=123.您可以在查询中提供一个提示,以使Oracle使用索引(在大多数情况下),但这对您来说不是必需的.
2. Oracle不太可能使用索引LIKE(除非您知道文本以搜索到的字符串开头,并且您可以使用'xyz%').有关何时以及如何使用索引进行全表扫描的详细信息,请参阅Tony Andrews的帖子.
有关使用文本索引进行Oracle LIKE子句搜索的文章应该提供有关处理全文搜索的方法的信息.