数据转换实现

gar*_*rik 5 performance sql-server-2008 database-design database-recommendation

我正在使用我公司的数据库,为许多外部应用程序提供数据。所以我需要将相同的数据转换成很多动态视图。我可以看到一位前数据库开发人员已经实现了许多长链视图-函数-过程调用序列,以进行所有外部应用程序更常见的转换。我认为,这种架构和如此长的请求(存储过程调用一些函数,然后 funcs 调用一些视图,这个视图基于其他视图等等)是一个性能问题,至少查询优化器没有解决这些问题(请确认我的猜测)。这是好方法吗?它是性能下降的原因吗?如果是,我如何重新实现数据库的对象。此刻,我看到了执行此操作的以下步骤:

  • 分析源数据结构(自己的数据)
  • 分析所有外部系统(数据库必须提供什么格式)
  • 每个外部子系统的单独视图、函数、存储过程(我必须避免长链,对于许多子系统 db 对象,如果它是问题的原因)

谢谢你。

Ren*_*ger 4

这是性能下降的原因吗?在你测量之前,没有人能真正判断。从你的描述来看,这当然是可能的,但在我开始执行任务之前,我会确定情况是否确实如此。我还要考虑的是,重新实现现有设置并不是免费的。

至于要做的步骤:我会放置测试用例,以确保当您更改某些内容时外部应用程序获得相同的数据。

最后,在你开始这样做之前,我也会得到管理层的承诺。如果数据库中的某些内容没有出现问题,那么这将不是第一次有人试图将错误归咎于您,即使您没有参与其中(即使它仅与数据库略有相关),只是为了事实有人听说“这家伙”正在“改变系统”。