如何确定一个严重规范化的数据库系统?

来源:这里教程网 时间:2026-03-03 17:35:42 作者:

我希望将一些数据库二元化介绍到严重规范化的系统。

我有一大堆数据库,这些数据库超过了十年,并在增加的负载量下,所以我希望提高性能,可能降低一些查询的复杂性。

在存储过程中完成任何给定任务,执行10个连接并不罕见。我被告知更多,那么6个臭味。

如果我保留表结构,并提供一些物化视图或非规范化的“缓存”表。

关于最佳实践的一些建议或朝着正确的方向推动会有所帮助。

谢谢

看答案

你不说问题是什么。是表演吗?如果是的话,在什么表?

它真的是导致问题的联系吗?或者是存储的程序吗?你不知道(或者至少,你不说)。

最佳练习:在尝试解决您尚未诊断的问题之前,弄清楚您的瓶颈首先是首先。


编辑:当我们有表现问题时,我提醒了一段时间。存储过程非常缓慢,可能需要几分钟时间完成。事实证明,这些SPS正在做出正常的表格更新,  但是使用游标。对于简单的东西  update t set c = c + 1 where id = n.

所以要做一个更新,我们正在使用一堆带有昂贵的更新游标并做的行  declare cursor for "select c from t where id = n" for update; 然后是一个打开的光标和读取和错误检查以及带有读取和错误检查的循环  select c into @c; @c = c + 1; update t set c = @c where current of cursor; 每次更新。

结果是那些写的人并没有意识到我们可以发出更新声明。所以他写了几十个这些缓慢的存储过程。我们甚至不需要摆脱储存的过程(虽然这也会增加我们的速度,它会改变我们的客户);我们刚刚摆脱了光标,用更新陈述替换它们。表现问题消失了。

相关推荐