Advantage Database Server忽略索引

时间:2016-02-09 16:48:26

标签: advantage-database-server

我遇到的问题是ADS似乎忽略了索引。我们有一个用Visual Foxpro 9.0编写的大解决方案,它与VFP-Database(DBF和CDX)一起使用。我们希望将ADS用于DotNet编写的新扩展。旧的VFP-App和新版本都应该在同一个数据库中并行工作 问题是ADS在所有选择语句中忽略了CDX文件中的索引,这导致了糟糕的性能 环境:ADS 12.0.0.0(也在11.10.0.22中测试)

对于测试,我使用命令

在VFP中创建了一个Testtable
set collate to "MACHINE"
create table D:\Temp\TestADS\test (F1 C(10), F2 C(100))
index on F1 tag F1
for lnx = 1 to 1000000
    insert into test (F1, F2) values (transform(lnx), "the quick brown fox jumps ... "
endfor

然后我使用了Advantage Data Architect,创建了与testfolder的连接(本地服务器,TableType:VFP,LockingMode:compatible,collat​​ion:machine_vfp_bin_1252)并使用SQL-Utility进行以下查询:

select  F1, F2 from test where F1 = '1000'

查询耗时420毫秒,执行计划表示正在使用带有警告的“表扫描”:

Restriction is not optimized.
Unoptimized Part : F1="1000"

然后我使用Advantage Data Architect,打开表格并选择“重新索引” 现在相同的查询耗时4毫秒,执行计划显示“AOF扫描”,没有任何警告。

看来,只要不是由他自己创建,ADS就会忽略该指数。如果我在VFP中触发reindex,则查询再次未被优化...

有人可以给我一个提示还是一个错误?

顺便说一句,登录论坛http://devzone.advantagedatabase.com/forum/account/signin/不能正常工作,内部服务器错误: - (

0 个答案:

没有答案