这与搜索表中的文本有关
表名:
细节
柱:
名字,名字,名字,名字
这张桌子有近十万张唱片
我们使用oracle表单进行一些查询选项
用户输入一个名称表单会在表中搜索该名称,并根据名称(fname/mname/lname/nname)进行进一步操作。
由于表中有大量数据,因此搜索需要很长时间。
我试过使用表的函数索引,但是没有成功,这也需要更多的时间
后来我试过这样的东西
将所有名称连接到一个名称中,并将其放入游标中。
我试过使用Instring的游标输出,但是它挂起了
我也尝试过搜索构建一个动态光标,但没有成功。
我的数据库是Oracle
你能帮我找出一个有效的解决办法吗?如果我漏掉了什么,请帮我。
谢谢
最佳答案
首先,10万张唱片本身并不是一张大桌子。
我看到的问题是查询似乎正在对fname/mname/lname/nname列执行或操作。
这意味着查询将至少执行一次完整的表扫描以获得结果。
您可能希望使用debug获取它对数据库触发的查询,并尝试在sql提示符下使用auto trace对此进行优化。
您可能需要澄清搜索是否也在对这些列执行类似于like的操作,而不是EQUALS类似的情况将进一步影响查询并影响索引。
当然,instr的使用将禁用搜索列上的索引。
不清楚您的块是否基于表、视图、查询、过程
您可能想尝试在窗体第一行的块属性上使用提示。