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

2024-01-20

我们的数据库设计得很糟糕(我们继承了它)。我已将架构重新设计为可用且可维护的东西。相当多的表和列已被删除,许多列已被移动,并且大多数表和列已被重命名。一些数据类型也已更改。

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

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

Thanks!


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

许多查询听起来像是选择、插入、更新等基本操作,但尚未在函数中进行抽象 - 也许这可以帮助在适应之前清理混乱。

现在进行测试:

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

  1. 备份您的测试数据库@状态0,清除一般查询日志

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

  3. 复制粘贴该日志,获取每个选择并在其前面加上“创建表 temptable_xyz”(或者当然 SELECT 到 temptable_xyz ..取决于可用的语法)

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

  5. compare

如果您可以确保您使用了每个应用程序中的所有功能,那么这应该可以做到。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

完整的数据库模式转换 - 如何测试重写的查询? 的相关文章

  • MS ACCESS 计数/求和行数,不重复

    我有下表 我需要计算总行数而不包括任何重复记录 CustomerID test1 test1 test2 test3 test4 test4 如您所见 总行数为 6 但有两个 test1 和两个 test4 我希望查询返回 4 IOW 我想
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • PL/pgSQL SELECT 到数组中

    这是我的函数声明和主体的一部分 CREATE OR REPLACE FUNCTION access update RETURNS void AS DECLARE team ids bigint BEGIN SELECT INTO team
  • 插入 Hive 表 - 非分区表到具有多个分区的分区表 - 无法插入目标表,因为列号/类型

    当我尝试插入分区表时 出现以下错误 SemanticException 错误 10044 第 1 23 行无法插入目标表 因为列号 类型不同 表 insclause 0 有 6 列 这 3 列已分区 我们不需要任何必须从中转储 存储的过滤器
  • 如何在 DB2 AS/400 中将小数字段转换为日期字段?

    我有一个 DECIMAL 字段 其中包含 AS400 格式的日期 1100614 我努力了 cast MYDATE as DATE 但我无法将 DECIMAL 转换为 DATE 而 DATE MYDATE 返回空值 如何将此字段转换为日期字
  • 串行类型的外键 - 确保始终手动填充

    我有两个表 国家和地区 CREATE TABLE Countries id SERIAL name VARCHAR 40 NOT NULL PRIMARY KEY id CREATE TABLE Regions id SERIAL coun
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • SQL 2008全文索引填充延迟

    我的经理说 在基础表数据更改后 可能需要一段时间才能更新全文搜索索引 例如 如果我有一张桌子Products有一个柱子Description我更新了该描述 然后我可能需要一些时间才能搜索该新描述 真的吗 这需要多长时间 SQL 2008 对
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 内置函数将每个单词的第一个字母大写

    如果 SQL Server 中已存在此类函数 我不想为此创建自定义函数 输入字符串 This is my string to convert预期输出 This Is My String To Convert SET ANSI NULLS O
  • 如何在 DB2 中创建返回序列值的函数?

    如何在 DB2 中创建一个从序列中获取值并返回该值的函数 应该可以在 select 或 insert 语句中使用该函数 例如 select my func from xxx insert into xxx values my func 基本
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐

  • Android 加速度传感器

    我正在尝试使用加速度计传感器 所以我尝试了这个 例子 http blog androgames net 85 android accelerometer tutorial http blog androgames net 85 androi
  • 在 Visual Studio 2013 中生成 .edmx EF6 时出现问题

    我正在尝试针对 mssql 2012 或 2008 数据库服务器和表集在 Visual Studio 2013 中为我的数据库生成 edmx 文件 edmx 文件生成时没有问题 并且在我尝试编译项目之前一切看起来都很好 代表数据库表的每个对
  • 适用于 .net/PowerShell 的良好内存数据库?

    如果我有一个处理稍微复杂一点且可以存储在变量中的状态信息的脚本 那么对于小型内存数据库来说 最佳选择是什么 Sqlite 是一个选项 尽管这将是一个外部依赖项 XML 也可以 尽管它是非关系型的 对于这项工作的工具有什么共识吗 考虑到 Po
  • Linux 64 位 shellcode

    我正在尝试在 Ubuntu 64 位上编写我的第一个 Hello world shellcode 但它不起作用 我有文件你好 asm 64 bit Hello World in Linux NASM global start global
  • 如何下载旧版本的 STS? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找下载3 6 0 sts bundle但我找不到执行此操作的地方https spring io
  • 如何用opencv改变饱和度值?

    为了将恒定值添加到每个像素的饱和度值 我在双循环中执行此操作 我想知道是否有更简单 更快的命令来实现这一点 对于我尝试的实验 分割 hsv 值 调整各个通道然后进行合并的替代方法提供了更好的性能 与循环像素相比 下面的方法对我来说要快很多倍
  • 如何轻松地重新排序TabControl?

    我有一个TabControl我在 VS2005 设计器中设计的 大约有 7 个选项卡 如何轻松切换选项卡的顺序 我匆忙地在末尾放了一个标签 但现在我想把它放在中间的某个地方 在选项卡控件的属性中 有一个 TabPages 集合 你应该能够在
  • Wordpress AJAX 调用出现 400 错误请求 [重复]

    这个问题在这里已经有答案了 我正在为 WordPress 网站的前端开发一个搜索插件 目前我不断收到 400 Bad Request 错误 但我不明白为什么 我已经审查了许多关于 SO 和 WordpressStackExchange 的问
  • 如何将图片合并到 WriteableBitmap 中?

    我有一个像这样的位图 var map new WriteableBitmap 800 800 800 800 PixelFormats Bgr32 null 然后我有一个 50x50 png 图片 我想将其合并到此位图 包括透明度 中 位置
  • 创建类似于fb:tag

    我想创建类似于 fb 标签的东西 例如 如果您将 fb comments 放入代码中 它将显示您来自 Facebook 的评论 当然 您需要在 HTML 头中包含 Facebook xmlns 如何创建自己的标签来执行加密等操作 例如
  • 尽管智能感知列出了它,但找不到定义?

    我在 Visual Studio 10 现在也是 11 中遇到了一个奇怪的错误 我有一个扩展方法 public static S Foo
  • 使用包标识符打开应用程序

    是否可以从我们的应用程序中打开应用程序bundle identifier 假设我在第一台设备上安装了两个应用程序com test app1 and com test app2 我可以从我的 app2 中打开 app1 吗 我知道 openU
  • 如何在 pywinauto 中通过正则表达式标题搜索子代/后代?

    我正在尝试通过正则表达式标题获取另一个 UI 元素的子 后代 UI 元素 例如 以下代码应该可以工作 from pywinauto application import Application WindowSpecification roo
  • Android gradle-experimental 0.2.0 添加 res 和 aidl

    我正在努力在 Android Studio 1 3 Gradle 2 5 和 gradle experimental 插件 0 2 0 中使用外部库 因为 NDK 需要这些库 我找到了一些材料here http tools android
  • 使用 AutoLayout 在自定义 UITableViewCell 中使用 Aspect Fill 的 UIImageView

    我一直在努力适应UIImageView显示可变宽度和高度的图像Aspect Fill 单元高度不适应新的高度UIImageView并坚持它的高度 视图的层次结构是这样的 UITableViewCell UITableViewCell Con
  • Firebase 显示成功但未发送云消息(Android - PHP)

    我已经做了很多研究来找出它导致问题的原因 但我仍然无法弄清楚为什么 我可以从控制台发送通知 我可以使用控制台中的令牌向一台设备发送通知 但我无法从 PHP 发送云消息 我还编辑了 build gradle 并添加了给定 firebase 的
  • 如何使用 HABTM 关系在 CakePHP 中查询数据?

    我正在开发 CakePHP 1 2 应用程序 我有一个模型 用户 通过连接表定义了与其他表的一些 HABTM 关系 我现在的任务是根据这些 HABTM 表之一中存储的数据查找用户信息 不幸的是 当查询执行时 我的条件被拒绝 并出现有关缺少表
  • 无法访问 Selenium Webdriver 中的引导模式对话框

    我想要访问打开的模式对话框的内容 并且想要访问按钮 是 否 HTML 代码如下所示 div class modal dialog div class modal content div class modal header div clas
  • 来自字符串字段的 AWS Athena json_extract 查询返回空值

    我在 athena 有一张具有这种结构的表 CREATE EXTERNAL TABLE json test col0 string col1 string col2 string col3 string col4 string ROW FO
  • 完整的数据库模式转换 - 如何测试重写的查询?

    我们的数据库设计得很糟糕 我们继承了它 我已将架构重新设计为可用且可维护的东西 相当多的表和列已被删除 许多列已被移动 并且大多数表和列已被重命名 一些数据类型也已更改 我已经从我们的网络应用程序中提取了所有查询 并开始重写它们 我们认为