【问题标题】:Data Mining/Retrieval Question数据挖掘/检索问题
【发布时间】:2011-07-25 17:38:03
【问题描述】:

我们的 SQL Server 2005 数据库有近 100 个不同的表。我们将提供一个功能来根据用户定义的过滤器搜索一些信息。我们的过滤器配置将非常复杂。用户可以轻松创建一个过滤器,将 20 多个具有复杂条件的表连接起来。

为了降低连接的复杂性,我们计划创建几个 SQL Server 视图。但该解决方案本身似乎不足以简化 SQL。我们将根据过滤器配置生成 SQL。 SQL 将动态生成。 (我不确定那个 SQL 会有多长……SqlCommand 有最大长度吗?)SP 是另一种选择……

你遇到过类似的情况吗?您对我有什么好的建议/解决方案吗?

谢谢!

【问题讨论】:

    标签: c# sql sql-server data-mining data-retrieval


    【解决方案1】:

    您应该阅读The Curse and Blessings of Dynamic SQL 以了解其中的一些陷阱。

    【讨论】:

      【解决方案2】:

      我建议创建一个对您的数据进行非规范化的报告数据库,这样您就不需要复杂的查询。还要确保对任何查询进行参数化以避免 sql 注入攻击。

      希望这会有所帮助。

      【讨论】:

      • 您如何看待创建一组视图而不是报告数据库?
      • @CharithJ:视图将为最终用户简化架构,但它们与原始 SQL 相比没有任何性能优势,除非它们是物化视图。
      • @Mitch:如果它们是索引视图怎么办?
      • @CharithJ:是的,索引视图几乎肯定会提供性能优势,但它们会增加额外的复杂性并有一些陷阱......
      • @Mitch :最后我想出了在这种情况下可以正常工作的表值函数。
      猜你喜欢
      • 2011-07-28
      • 2012-08-04
      • 2018-03-29
      • 2014-06-13
      • 2013-01-29
      • 1970-01-01
      • 2011-02-07
      • 2015-09-12
      • 2011-05-04
      相关资源
      最近更新 更多