0

我们有一个两难境地,即我们有一个记录层次结构,层次结构中的每个项目都可以是任意数量的不同类型。层次结构中的最后一个节点是一个站点,在层次结构的更上方,即父级有概念项目,如区域主管、总经理等。层次结构中的项目不处于固定级别,即一个分支中的常务董事可能处于第 3 级,而在另一个分支中处于第 7 级。

所以我们有一个报告,需要显示每个站点以及站点相关管理器,其中有七个站点,结果集包含 1500 个站点,每个站点都不同。我们有一个标量函数,它将返回特定类型的站点父级,它可以正常工作,但它会产生超过 8,000,000 个单位的读取成本,这从性能的角度来看会影响系统的其余部分,呵呵!

是否有人对我们如何以更有效的方式提取此信息有任何想法,从而降低读取成本并显着减少生成报告所需的时间。

因此,导致我们出现问题的一点是在我们的最终选择语句中,大致如下: -

SELECT 
   [SiteName], FetchSiteHierarchyItem(BusinessID, 'OD') AS OperationsDirector, 
   FetchSiteHierarchyItem(BusinessID, 'MD') AS ManagingDirector

 ...... and so on

每次调用FetchSiteHierarchyItem大约需要 700 次读取,具体取决于我们必须遍历的级别数,因此显然 1500 行 x 7 格式 x 700 次读取等于 7,350,000 次读取 aaaaaargh!

提前致谢

安迪

4

0 回答 0