在 NAVISION 2009 R2 中,我有一个迭代 3 个表的报告:
- 服务标头:82 266 项 / 120512 Ko
- 服务热线 : 311 117 items / 720 352 Ko
- 服务分类帐条目:2 293 754 项 / 2 453 568 Ko
我正在导出大约 10 000 个标题和 50 000 行。
从SQL Server Profiler中,我看到 NAVISION 使:
1 对标头的查询
SELECT * FROM "database_name"."dbo"."company_name$Service Header"
10 000 行查询(使用 DataItemLink 属性)
SELECT * FROM "database_name"."dbo"."company_name$Service Line"
Ledger Entries 的 50 000 次查询(使用 SETRANGE + SETFILTER 过程)
SELECT * FROM "database_name"."dbo"."company_name$Service Line"
由于 Service Ledger 条目表的大小,这些查询每个大约需要 300 毫秒(根据 StmtCompleted 事件),因此总共需要 4 个多小时。
由于我使用了 Ledger 条目表中数量有限的属性,
有没有办法SELECT *
通过 NAVISION 避免默认请求,而是列出必要的属性?