我有一个可以包含各种不同类型和字段的表,并且我有一个表定义表,告诉我哪个字段包含哪些数据。我需要从该表中选择一些东西,所以目前我根据表定义表中的内容构建一个动态select语句,并将其全部选择到临时表中,然后从中工作。
我选择的实际数据量非常大,超过500万条记录。我想知道临时表是否真的是最好的办法。
还有其他更有效的选择来做我需要做的事情吗?
答案 0 :(得分:0)
您可以使用Table Variables
来实现此功能。
如果您在多个查询中使用相同的结构,那么您也可以使用自定义Table data types
。
http://technet.microsoft.com/en-us/library/ms188927.aspx
http://technet.microsoft.com/en-us/library/bb522526(v=sql.105).aspx
答案 1 :(得分:0)
如果您的数据是静态的,那么报告就像 - 缓存大多数热门查询结果一样,最好是在Application Server上。或者做多维建模(立方体)。这是真正“更有效的选择”。
临时表,表变量,表数据类型......在任何情况下,您都将使用tempdb,如果要优化查询,请尝试优化tempdb存储(在检查IO statistics之后)。您可以为临时表创建索引。