什么是在临时表中存储临时数据的替代方法?

时间:2010-07-15 13:36:54

标签: sql

在我们的网络应用程序中,我们在数据库中创建会话表以存储临时数据。因此,将为每个用户创建和销毁临时表。这个网络应用程序我有大约300个用户。因此,对于每个用户,这些表都将被创建和销毁。

我听说由于性能问题,这种设计方式并不好。 我正在使用MS Sql server 2005.有没有办法临时存储结果集而不创建任何表。

请建议我一些解决方案。 感谢。

4 个答案:

答案 0 :(得分:2)

或者:

为所有用户使用单个永久数据库表,并使用UserID列过滤

只需使用您的网络平台的会话处理功能来存储信息

答案 1 :(得分:1)

听起来好像是在创建和删除永久表。您是否尝试过使用真实临时表(表名以#开头的表)。如果你有一个小的数据集,OR表变量。这些都可以很好地工作。如果你使用真正的临时表,你需要确保你的tempdb大小足以容纳通常的用户数量,增加tempdb会导致延迟。

答案 2 :(得分:0)

GenerateData的解决方案正是您所寻找的。您可以创建测试/样本数据库,并在需要时将其删除。

答案 3 :(得分:0)

根据你实际做的事情(以及你是否可以重构),使用table variables可能更合适一般。

如果问题不仅仅是学术上的问题,那么,如果问题不仅仅是学术上的,那么数据库确实是一个合适的地方,甚至可以尝试保留数据集。或许保持对象的表示形式会更好应用内存中的数据?