当前位置: 首页 > 面试题库 >

完整的数据库架构转换-如何测试重写的查询?

宫俊远
2023-03-14
问题内容

我们的数据库在所有方面都设计得很差(我们继承了它)。我已经将架构重新设计为可用和可维护的东西。删除了一些表和列,移动了许多列,并重命名了大多数表和列。一些数据类型也已更改。

我已经从我们的Web应用程序中提取了所有查询,并且我们已经开始重写它们。我们认为,我们的DBA能够将旧数据迁移到新架构。为了确保我们需要通过将旧结果与新结果进行比较来测试每个查询。

我们如何测试这种大规模迁移?我需要能够指定参数,并将旧表/列映射到新表/列。对于数百个查询,这是一项艰巨的任务。我可以自己写点东西,但是我对时间的要求很高,因此最好使用现有工具。

谢谢!


问题答案:

我必须这样做…而且很容易,因为我重写了整个应用程序;)

许多查询听起来像基本操作,例如select,insert,updates尚未在函数中抽象出来-也许可以帮助在适应之前清理混乱。

现在进行测试:

您需要一个测试脚本,该脚本将a)运行所有查询b)存储所有选择的输出以进行比较

  1. 备份测试数据库@状态0,清除常规查询日志

  2. 使用所有删除,选择和更新来遍历您的应用程序,

  3. 复制粘贴该日志,进行每个选择,然后在其前面加上“创建表temptable_xyz”(当然,也可以将SELECT选入temptable_xyz ..取决于可用的语法)

  4. 在两个数据库上运行,在迁移脚本之后测试db @ state 0和测试db @ state 0

  5. 比较

如果您可以确保在每个应用程序中都使用了每个功能,则应该这样做。

GL-没什么比将现有的东西变得更好;)



 类似资料:
  • 问题内容: 我想为ACL创建一个架构;但是,我在实现它的两种方法之间陷入了困境。 我敢肯定,我不想处理级联权限,因为这会导致后端和站点管理员感到困惑。 我想我也可以只和一个角色一起生活。这样的设置将允许在网站扩展时根据需要添加角色和权限,而不会影响现有角色/规则。 首先,我要规范化数据并使用三个表来表示关系。 查询以确定是否允许某处某个用户的查询如下所示: 然后我意识到我将只有大约20个资源,每个

  • 本文向大家介绍如何将整数转换为用R语言写的整数?,包括了如何将整数转换为用R语言写的整数?的使用技巧和注意事项,需要的朋友参考一下 如果我们有数字,那么我们可能希望将这些数字转换为单词。例如,将1转换为1。如果我们有文本数据并且数字是文本的一部分,则可能需要这样做。因此,最好以文本形式表示数字,以使文本保持一致。这可以通过使用replace_number函数qdap软件包来完成。 安装和加载qda

  • 我一直在玩R中的数据库查询,这些查询是在带有PostGIS扩展的Postgres数据库上执行的。这意味着我使用了一些没有R等价物的PostGIS函数。如果不是因为这个,我可能只是在本地测试数据帧上执行相同的函数,而不是在数据库连接上执行相同的函数,但是由于PostGIS函数,这是不可能的。 是否有一种简单的方法可以在测试数据库中创建测试数据并对其运行查询并评估结果?我有一个R不直接支持的WKB列,

  • 问题内容: 假设我有一个结构: 与数据库表具有相同的架构。将数据库行解析为结构的最简单方法是什么?我在下面添加了一个答案,但是我不确定这是最好的答案。 问题答案: 这是一种实现方法-只需在函数中手动分配所有结构值即可。

  • 我怀疑为每一个传入的事件记录执行postgresql操作将是一个性能问题。 对于这种情况,有什么更好的或可供选择的设计?

  • 本文向大家介绍详解SQL Server数据库架构和对象、定义数据完整性,包括了详解SQL Server数据库架构和对象、定义数据完整性的使用技巧和注意事项,需要的朋友参考一下 前言 本节我们继续SQL之旅,本节我们如题来讲讲一些基本知识以及需要注意的地方,若有不妥之处,还望指出,简短的内容,深入的理解。 数据库架构和对象 数据库包含架构,而架构又包含对象,架构可以看做是表、视图、存储过程等对象的容