一个简单的查询是在存储过程中编写的,和内联查询一样,执行速度很快



一个在存储过程中编写的简单查询,与在SQL server中快速执行的内联查询相同。面试小组的人问我这个问题,我说商店程序的原因是程序编制的,但他说我错了。请解释一下。?

我认为,简单查询是一些只读代码。

  • VIEW是完全可内联和预编译的。最大的优点是,您可以通过联接和筛选器将其绑定到更大的语句中,并且在大多数情况下,可以使用索引和统计信息
  • "new"语法中的表值函数(TVF)(没有BEGINEND)与VIEW非常相似,但参数和处理也是预编译的。VIEW的优点在这里是相同的
  • 在大多数情况下,返回表("旧"语法)的UDF是不应该做的事情。最大的缺点是,优化器无法预先估计结果,并将其处理为单行表,在大多数情况中,这真的很糟糕
  • StoredProcedure只做VIEW或TVF也可以做,这让我很头疼,至少在我看来是这样。我知道,还有其他意见。。。最大的缺点是:每当您想继续处理返回的结果集时,都必须将其插入到表(或声明的表变量)中。针对这个新表的进一步联接或筛选将丢失索引和统计信息。可能是一个简单的嘿,SP给我你的结果很快,但这通电话之后一切都完全瘫痪了

因此,我的facit:当有要做的事情时使用SP,当有
要读取

时使用VIEW或TVF

最新更新