【发布时间】:2013-05-29 15:19:15
【问题描述】:
我在决定是使用视图还是使用临时表时遇到问题。
我有一个从程序调用的存储过程。在该 SP 中,我将长查询的结果存储在临时表中,命名列并对该表进行另一个查询,将结果存储在标签或网格视图或其他任何内容中,然后删除临时表。我还可以将查询结果存储在视图中并对该视图进行查询。那么什么更好或者在什么情况下我必须使用视图/临时表。
根据我的研究,视图具有以下优点:安全性、简单性和列名规范。我的临时表也满足了所有这些要求(根据我的观点)。
【问题讨论】:
-
除非你陈述你的目标并根据它们对你的重要性来排名,否则这个问题实在是太笼统了。
-
这个问题的唯一可能答案是:你必须同时尝试,看看哪一个效果更好。
-
视图(至少在 mysql 中)在会话中是持久的。执行相同代码的不同用户会遇到问题,执行创建相同视图的代码。会话关闭时会删除临时表,并且不会在不同会话之间共享。
标签: sql sql-server view temp-tables