2009-06-26 50 views

回答

6
  • 内存表是一个完全缓存的表,因此在查询时不会导致任何物理(硬盘)读取。或者,它是一个表值变量,在批处理或函数中声明,没有持久性。取决于“内存表”的含义:)

  • temp(orary)表是一个当不再需要时会自动删除的表,通常在创建会话终止时。在MS SQL中,它们以#开头(如果它们是全局临时表,则在多个会话之间共享),并且通常使用SELECT INTO #TEMPTABLE ...样式查询创建。

  • 数据透视表是一种特殊的查询形式,其中几行中的值汇总,“旋转”在一个轴上,并成为列,其中汇总数据随后变为行。这种情况经常发生在你将行按日期排序的地方;这些然后可以“摆动”,让你与一个三月份一月,一个代表二月,一列等

2

继承人一个良好的阅读最终在@temp tables vs #temp tables

我会总结它:

@temp表变量存储在内存中......使用它们越多,处理器成本就越高......但这些可以缓存,因此可以在大多数情况下运行得更快。

#temp表存储在磁盘上,如果你要在临时表中存储大量数据,你可能需要去这条路径,I.E.用于报告目的。

使用PIVOT and UNPIVOT只是一种“旋转”结果的方式......所以它的内存访问将与其他标准查询的执行方式类似。

相关问题