我有一个执行连接到数据库的报告,用户名为my_report_user
。报告中可能有许多最终用户。并在每次执行一个新的连接到数据库将与my_report_user
(没有连接池)本地vs全球临时表 - 什么时候使用?
我有一个结果集,我认为可以只创建一次(可能是在第一次运行的报告)其他报告执行可以重复使用这些东西。基本上每个报告执行应检查此结果集(存储为临时表)是否存在。如果它不存在,则创建该结果集,然后重新使用可用的。
我应该使用local
临时表(#)或global
临时表(##)?
有没有人试过这样的东西,如果是的话,请让我知道我应该关心什么东西? (几乎同时报告运行等)
编辑:我使用的SQL Server 2005中
什么版本的SQL Server?如果2005+,CTE(也可能是递归CTE)是另一种选择。如果不了解更多有关您需要如何处理它们的信息,我推荐使用本地全局临时表...... – 2009-10-20 17:44:58
做出最坏情况的假设:全局临时表不会因为连接仍然存在而丢失,该表中的数据失效?即定义何时必须刷新数据以避免报告中的错误数据? – 2009-10-20 17:48:04
其sql-server 2005.你确定本地临时表允许我重新使用。我在考虑本地临时表将不允许跨多个报告执行的可重用性。现在知道这个版本,你说什么? – peakit 2009-10-20 17:48:35