【发布时间】:2011-12-07 23:03:17
【问题描述】:
我有一个数据库,我必须保持与 SQL Server 2005 的兼容性,并且我一直在考虑降低复杂性和处理性能问题的方法。
我的数据库与大多数其他数据库一样,充满了数据,其中包含大量数据并且有很多查询。我有许多存储过程一直在发展(一段时间以来)以满足业务需求。这基本上没问题,但是我遇到了性能问题,而且我的查询变得越来越复杂,难以管理。
乍一看,我不认为我的数据模型有什么问题,它没有荒谬地规范化(我们已经对一些东西进行了非规范化),但我发现自己无法编写和运行那些用于供电的极快查询我的 Web 界面 AJAX 查询,因为所有的约束似乎有些随意地到处存在。
所以,我已经考虑过了,我想我想将我的数据库组织成环。让我解释一下。
基本上,在最内圈,你会发现最专业的 数据集。这些表是完全非规范化的,并且已经 通过聚合来自外环的数据来构建,以确保特定 查询运行速度非常快。
最外面的环在理想情况下是“哑”的,基本上只是一个真正的 放东西的地方不好。
外部和内部之间基本上是您的概念模型,这些 从其他环拉或推到内环,这是 您在哪里清理数据并确保其正确无误。
数据只能从外环流向内环。
我不想使用触发器来保持不同的环保持一致,而是我有一个服务和作业,它们会定期侦听、轮询和运行以确保最终的一致性,一刀切。
现在,我在这里寻求建议,并希望从有经验的数据库人员那里获得一些意见。我相信我可以通过这种方式从我的数据库中获得更多收益。它将使我能够解决不同阶段的复杂性和性能问题。也许我正在做的事情有一个共同的名字,或者这就是 NoSQL 运动的全部意义所在,但我真的不知道,这个想法对我有一些吸引力,但如果我在那里,我'在我犯错之前想听听...
【问题讨论】:
-
如果您想要速度和最终的一致性,NoSQL 解决方案可能是更好的选择。其中一些听起来像是使用 SQL Server 自行推出的 nosql 解决方案,这似乎是个坏主意。
-
注意你的语言年轻人
-
@JNK - 假设跳槽和放弃 SQL Server 不会发生。此外,我对 SQL Server 做事的方式并不感到不快,以正确的方式对待,它把事情做好了。从长远来看,也许 NoSQL 是正确的选择,但我还没有……
-
@JohnLeidegren - 我绝不是 NoSQL 的拥护者(我还不太了解不同的平台),但是当我听到最终的一致性时,我想到了 NoSQL。 NoSQL B asically A vailable,S oft state,E 虚拟一致性,而不是 ACID.
-
是的,但是 NoSQL 也不能有效地查询。您在核心中拥有的是一个 LAP 数据库——您是否使用 ROLAP 是另一个问题。大多数人(你似乎也属于这种情况)提倡 NoSql,因为他们无法从一开始就考虑 Cobbs 关系定理的可能性。糟糕的选择(我做意大利面是因为我从来没有做过肉)。您可能会惊讶于用于报告的 spcail 数据库多年来大多是“NoSql”,但也不是面向文档的。
标签: sql-server sql-server-2005 database-design