我有一个包含过去4 - 5年数据的数据库。数据库已经变得非常大,使用这个数据库的应用程序运行起来非常慢。我希望存档所有表中的一些数据。这个数据库有16-17个表,它们之间有关系,我正在寻找一种方法来执行存档操作,这样我可以存档/删除数据几年。我尝试阅读APPEND和DELETE查询,但我不知道如何在多个表上应用它们。
另一个问题是这个应用程序是由其他人创建的,我对数据库和表的结构方式知之甚少。任何帮助/建议都非常感谢。
答案 0 :(得分:0)
您需要做的第一件事是了解您的数据集。如果你真的“对数据库和表的结构方式没有足够的了解”,那么你就要为自己设置一个巨大的失败。
最重要的部分是确定表格如何相互关联。如果原始设计师有能力,他应该在数据库中建立关系并强制执行参考完整性。您需要查看这些关系(转到数据库工具标签并选择关系),或确定数据之间应存在哪些关系。
确定数据的相关方式后,您需要设置新的存档表以镜像要存档的所有表。最简单的方法是右键单击表格,然后右键单击窗格中的其他位置并选择“粘贴”。你会得到一个看起来像这样的盒子:
选择“仅结构”,因为您只想设置表格。我会给它们与原始表格相同的名称,并将“_Archive”添加到最后。通过这种方式,您可以轻松确定要使用的表格。
接下来,确定哪些是您的“父”表,哪些是您的“子”表。您可以通过确定哪些字段包含彼此之间的关系以及它们之间的关系来实现此目的。任何具有一对多关系的表可以在“一”侧被视为“父母”,在“多”侧被视为“子”。
在此之后,您需要确定您希望如何存档。通常,您的表格中有一些日期字段可用作指南。比如说,你有一个名为“订单日期”的字段。您可以选择在2010年1月1日之前存档任何订单日期为任何内容的任何内容。因此,为此,您需要编写一个追加查询。您将所有内容附加到新订单日期< = 12/31/2009的新存档表中。首先为Children表执行此操作,然后对Parent表执行此操作。
在此之后,您将编写一个删除查询。基本上与上面的过程相同,但是您要从原始表中删除,因为数据已经写入归档表。您必须首先从子表中删除。然后对父表执行相同的操作。
现在,您可以将所有存档表移动到新数据库中,并将其压缩以最小化空间。一旦完成,您可以修复&压缩数据库,尺寸应小得多。
永远记得先复制一份!如果您犯了任何错误,则无法撤消它们。通过创建副本,您可以返回并重试,而不会丢失任何数据。