2009-12-04 48 views

回答

3

每次访问视图(和底层函数)都会被重新评估,因此创建视图不会改善任何事情。

事实上,你将最有可能通过删除UDF,只是以此来找到你的父节点加快东西:

SELECT mpp.id 
FROM mytable mc 
CROSS APPLY 
     (
     SELECT TOP 1 id 
     FROM mytable mp 
     WHERE mp.lft BETWEEN m.lft AND m.rgt 
     ORDER BY 
       mp.lft DESC 
     ) mpp 

,特别是如果你在lft又包括rgt有一个指标:

CREATE INDEX ON mytable (lft) INCLUDE (rgt) 

对于SQL Server,嵌套模型效率不是很高。它是为遗留系统设计的,它不允许递归查询,但对于大多数现代数据库系统而言,邻接列表效率更高。

有关详细信息,请参阅本文中我的博客:

0

是的,这应该加快速度。有意见返回子标识父级详细信息

这样,您可以使用子编号从您的表格加入视图。

相关问题