【发布时间】:2019-09-11 16:44:04
【问题描述】:
在 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" -
50 000 对分类帐条目的查询(使用 SETRANGE + SETFILTER 过程)
SELECT * FROM "database_name"."dbo"."company_name$Service Line"
由于 Service Ledger 条目表的大小,这些查询每次大约需要 300 毫秒(根据 StmtCompleted 事件),因此总共超过 4 小时。
由于我使用 Ledger 条目表中数量有限的属性,
有没有办法避免 NAVISION 默认发出 SELECT * 请求,而是列出必要的属性?
【问题讨论】:
标签: sql microsoft-dynamics navision dynamics-business-central