【问题标题】:SQL Server dilemma, performanceSQL Server 困境,性能
【发布时间】:2010-05-04 18:45:45
【问题描述】:

我正在创建用户可以保存选项的应用程序

女巫一号更好?

  1. 保存到用户表 varchar 感觉就像 ('1,23,4354,34,3') 对此的查询是 select * from data where CHARINDEX ( 'L', Providers , 0 ) > 0

  2. 创建用户选项所在的其他表并添加行 select * from data where Providers in (select Providers from userdata where userid=100)

感谢帮助

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    如果可能,尽量避免将内容放入逗号分隔的字符串中,然后强制 SQL Server 必须再次解析所有这些条目。

    因此,在您的情况下,我肯定会选择选项二 - 使用单独的表,并让您的用户选项作为单独的行保存到该表中。这是更简洁、更类似于 SQL Server 的解决方案,如果处理得当,它的性能也会好得多(因为从表中检索数据是 SQL Server 的核心工作和能力——解析字符串不是)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-01
      • 2011-10-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多