我有一个SQL函数,它查找左右树中某个节点的父节点。这需要很长时间。如果我创建一个视图,为每个节点存储它的父节点,是否会加快速度? (然后我会问视图来获取父节点)。你可以提高sqlserver视图的性能吗?
1
A
回答
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
是的,这应该加快速度。有意见返回子标识和父级详细信息。
这样,您可以使用子编号从您的表格加入视图。
相关问题
- 1. 并发性可以提高性能吗?
- 2. const-correctness可以提高性能吗?
- 3. jni可以提高反射性能吗?
- 4. 你有什么提示可以提高ReSharper和/或Visual Studio的性能吗?
- 5. CTE能提高性能吗?
- 6. 我可以修改索引或视图以提高'空'子句的性能
- 7. 使用具有SpriteBatch的静态Texture2D可以提高性能吗?
- 8. DbLinq的对象跟踪性能可以提高吗?
- 9. CUDA,可以使用共享内存提高我的性能吗?
- 10. 这个画布drawImage()测试的性能可以提高吗?
- 11. C中的static关键字可以用来提高性能吗?
- 12. 生成列表可以提高Python的性能吗?
- 13. 使用MySQL视图来提高性能
- 14. 在滚动视图中提高性能
- 15. 使用视图提高查询性能
- 16. 如何异步加载图像以提高表视图性能?
- 17. 缓存是否可以提高性能?
- 18. 模拟退火 - 可以提高性能?
- 19. 哪种方法可以提高性能?
- 20. 如何提高不可见视图的Flex性能
- 21. 使用PHP7可以提高oci8性能吗?
- 22. 强类型数据集可以提高性能吗?
- 23. 统一列可以提高查询性能吗?
- 24. 多线程可以提高性能吗?怎么样?
- 25. 可以通过模块/静态类来提高ASP.NET性能吗?
- 26. 在Order By中使用MATH可以提高性能吗?
- 27. 我可以使用glscissor提高性能吗
- 28. 数据库设计和性能:使用冗余FK提高性能可以吗?
- 29. 如何为edmx生成视图以提高性能?
- 30. Android ArrayAdapter增加缓存视图以提高性能