【问题标题】:ADS How to use index on select queryADS 如何在选择查询中使用索引
【发布时间】:2016-10-18 06:40:20
【问题描述】:

我有一个来自公司旧裁剪程序的 .dbf 文件,我将它添加到 ADS 12 评估中的数据字典中,并带有 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 = '...'

但它不起作用。

【问题讨论】:

    标签: indexing dbf advantage-database-server clipper


    【解决方案1】:

    一些提示:

    1. 必须手动将 NTX(和 IDX)文件添加到表中(与自动检测到的 CDX 和 ADI 索引文件相反,因为它们与表具有相同的基本名称)。在 ARC32 中,当您右键单击表格时,会有一个“添加现有索引文件...”选项。

    2. 您可以通过显示执行计划(SQL Utility 窗口工具栏中的一个大表和两个小表的按钮)来检查 ARC32 是否实际使用任何索引。如果有一个红色圆圈并显示“TABLE SCAN”,则它不会使用索引。

    1. 如果索引在 FIELD1+FIELD2 上,您必须像这样实际查询它:

      SELECT * FROM TABLE.DBF WHERE account + billmo = '000000...' + '2016...'

    这里没有红色圆圈,它显示的是“AOF SCAN”而不是“TABLE SCAN”,这意味着 ADS 在“Advantage Optimized Filter”扫描中使用索引而不是读取整个表。

    1. 只要您只使用数据进行一些报告并且不想将其写回到旧应用程序中,将其迁移(可能通过定期作业)到更好的数据库格式(ADT +具有正确索引的 ADI,如 'account;billmo' [注意分号] 已经是一个相当大的进步)。

    【讨论】:

    • 嗨,我已经将关联的索引文件添加到表中,并且我已经尝试了您使用 ACCOUNT+BILLMO 建议的查询,但它仍然显示 TABLE SCAN 并带有警告 Restriction is not optimized。我试图用 ARC32 重新索引,但仍然是同样的警告。我无法迁移该表,因为这里的其他系统当前正在使用它。
    • 您是否尝试过在每列上使用单独的索引?同样正如我已经写过的:当未加载索引时,SQL 引擎无法利用它(没有双关语)。
    • 是的,我只尝试了account 列。还是一样。我如何知道索引是否已加载?我已经将它添加到表格中。
    • 恐怕只能帮到你了。您可能想在 SAP 论坛发帖:go.sap.com/community/tag.html?id=67838200100800005437
    • 嗨,我知道现在有什么问题。当没有人使用桌子时它很快。旧系统正在使用该表,当许多人使用它时,它开始变慢。如果没有人使用,我可以快速获取数据,但 sql 实用程序仍然说它不使用任何索引。请问你用的是什么TableType和DBFTableType?因为当表类型为 NTX 时,我实际上无法使用 SQL 实用程序,只能在 ADT 中使用。
    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 2020-10-12
    • 1970-01-01
    • 2015-03-18
    • 2018-12-11
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多