1

这是关于在表格中搜索文本

Table_Name:详细信息

列:Fname、Mname、Lname、NName

该表包含近 10 万条记录

我们正在使用 Oracle 表单进行一些查询选项

用户输入一个名称,在表格中搜索名称并根据名称(Fname/Mname/Lname/NName)在其所在的列中进行进一步的操作。

由于表中存在大量数据,因此搜索需要很长时间。

我尝试使用表的功能索引,但没有工作它也需要更多时间

后来我尝试使用类似这样的方法将所有名称连接成一个名称并将其放入游标中。使用我尝试使用 Instring 的光标输出,但它挂起

我也尝试搜索构建动态游标,但没有奏效。

我的数据库是甲骨文

你能帮我找到一个有效的解决方案吗,或者如果我错过了什么,请帮助我。

谢谢

4

1 回答 1

0

首先,10 万(100,000)条记录本身并不是一张大表。

我可以看到的问题是查询似乎正在对 Fname/Mname/Lname/NName 列执行 OR。这意味着查询将至少执行一次全表扫描以获取结果。您可能希望使用调试来获取它对数据库触发的查询,并尝试在 SQL 提示符下使用自动跟踪来调整它。

您可能需要澄清搜索是否也在对这些列执行类似 LIKE 而不是 EQUALS 的操作。作为 LIKE 将进一步影响查询并影响索引。

当然,使用 INSTR 会禁用搜索列上的索引。

目前尚不清楚您的块是否基于即。表、视图、查询、过程

您可能想尝试使用 FIRST_ROWS 形式的块属性的提示。

于 2013-01-07T10:19:58.163 回答