为了回答您问题的第一部分,我认为查看“创建属性索引”帮助文件中有关多列索引的其他文本会有所帮助。
字段在多列索引中出现的顺序很重要。在A列位于B列之前的多列索引中,A列将用于进行初始搜索。同样,这样的索引对于仅涉及列A的查询将比仅涉及列B的查询有用得多。
在A和B上创建一个多列索引。对于同时涉及两个列的查询,该索引通常会更有效。对于仅涉及A的查询,此索引将比仅对A的索引慢。该索引对于仅涉及B的查询几乎没有用。要进行补偿,您可以在B上创建一个附加索引。
这两个段落都表明,多列索引更适合于特殊用途。此外,使用这样的索引仅对所包含的列之一进行排序实际上会损害性能。因此,对于多列索引中包含的每个属性,可能都需要有单独的列索引。
我找到了ESRI的一个旧的但有趣的文档的链接,其中指出了选择个人GDB上的文件的9个理由。有趣的是,它特别指出性能是原因之一。这种性能提升的部分原因在于基于文件的存储系统。我认为这也可能导致缺乏多列支持。与作为单个文件的个人GDB不同,文件GDB中的索引作为单独的文件存储在GDB结构中。这意味着特定要素类的索引文件和属性文件必须一起链接和访问。我可以看到多列索引将导致索引和属性文件之间来回跳转,并可能导致性能下降超过索引性能收益。
由于与个人GDB相比,文件GDB已经有了显着的性能提升,因此可能不值得实现多列索引。
在使用两种GDB类型的经验中,我已经看到Personal GDB运行的文件大小大约比文件大50%。根据您提供的有关文件GDB的数据,如果要转换为PGDB,则最终可能会有〜300MB的个人GDB。从我所看到的来看,在ESRI产品中以及单独使用MS Access数据库时,一旦“ .mdb”文件的大小明显增加超过100MB,您就会开始发现性能下降。
另一个问题可能是,即使您可以加快属性搜索的速度,也会看到与在数据框中移动和刷新视图有关的巨大性能损失。如果该层位于PGDB中,则其绘制速度不会那么快。本文比较了地理数据库的类型,可提供有关性能差异的更多信息。
与很多事情一样,最佳选择最终将归结为您的用例。如果您想在Access界面中执行很多特定于数据库的操作,例如查询和更新,则Personal GDB可能会更好。如果您仅计划进行一些查询,而主要是可视化空间数据,那么性能肯定会落在File GDB的一边。