我在公司的旧剪辑器程序中有一个.dbf文件,我将它添加到ADS 12 Evaluation中的数据字典中,并附带了dbf(.ntx)的相关索引文件
字段是:
account,type,billmo,bill,kwhr,amount,pay,present,previous,forex,fpca,pfcharge,demand,demandchg,rebate,paydate,dummy,raffle,enerchg,others,pf,adj,datebill,billstat,insert,tendered,meter,adj2,lifeline,e_vat,w_tax,add_chg,restruc,mtrr,senior
并包含300k +行。
.dbf包含4个.ntx(索引)文件,其中一个文件的表达式为account+billmo
。
当我执行一个简单的查询时:
SELECT * FROM TABLE.DBF WHERE account='000000...' AND billmo = '2016...'
需要16秒或更长时间。同时删除:
DELETE FROM TABLE.DBF WHERE account='...' AND billmo = '...'
它仍然是一样的。
我不知道如何在查询中使用索引(.ntx),我已经搜索了谷歌并尝试了类似的内容
SELECT * FROM TABLE.DBF use index TABLE1 WHERE account = '...' AND billmo = '...'
但它不起作用。
答案 0 :(得分:1)
一些提示:
必须手动将NTX(和IDX)文件添加到表中(与CDX和ADI索引文件相反,这些文件会自动检测到,因为它们与表具有相同的基本名称)。在ARC32中右键单击表格时,会出现“添加现有索引文件...”选项。
您可以通过显示执行计划(“SQL实用程序”窗口工具栏中包含一个大表和两个小表的按钮)来检查ARC32是否实际使用了任何索引。如果有一个红色圆圈并且显示“TABLE SCAN”,那么它将不会使用索引。