在PL / SQL / Oracle Forms中搜索

时间:2013-01-07 10:01:23

标签: sql algorithm forms plsql oracle10g

这是关于搜索表格中的文字

TABLE_NAME: 细节

柱: FNAME,MNAME,L-NAME,n名称

此表包含近十万条记录

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

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

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

我尝试使用功能索引进行表格,但是没有用,它也花费更多时间

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

我也尝试过搜索构建动态游标,但它没有用。

我的数据库是Oracle

你可以帮我找一个有效的解决方案,如果我错过了什么,请帮助我。

由于

1 个答案:

答案 0 :(得分:0)

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

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

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

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

目前尚不清楚你的块是基于什么的。表,视图,查询,程序

您可能想尝试使用FIRST_ROWS表单的块属性上的提示。