我的工作与SQL Server2000年数据库,可能会有几十个表中都没有再进行访问。我想要清除出数据,我们不再需要维持,但我不知道该如何来确定哪些表格删除。

该数据库是共同通过几个不同的应用程序,所以我不可能是100%确信,审查这些将给我一个完整的列表的对象是使用。

什么我想要做,如果可能,得到一个列表那些没有被访问的所有一段时间。没有读,没有写道。我应该怎么处理这个?

有帮助吗?

解决方案

MSSQL2000不会给你这样的信息。但一个方法你可以识别的什么表都采用(然后推断哪些是不)是使用SQL探查,以节省所有查询,请转到一定数据库。配置的探查记录的结果,一个新表格,然后检查的查询保存在那里找到的所有表(和观点,卫生和植物检疫措施、等等)使用的应用程序。

另一种方式我觉得你可能会检查,如果有任何"写"是添加一个新的时间戳列每个表,并触发更新,列每次更新或插入。但是要记住,如果你的应用程序做的查询的类型

select * from ...

然后他们将接受一个新柱,并可能因为你一些问题。

其他提示

另一项建议跟踪表已写入是使用 红门SQL日志的救援 (免费)。这个工具的潜入日志的数据库和会告诉你所有刀片,更新和删除。该名单是完全可搜索。

它不符合你条件的研究读取到数据库,但我认为SQL探查技术会让你一个公平的想法尽。

如果你有lastupdate列的你可以检查的写道,实在是没有简单的方法以检查读。你能分析器,保存跟踪表并检查那里

我通常做的是重新命名表通过前面加上它与underscrore,当人们开始尖叫,我只是重新命名它回来

如果不用,你的意思是你的申请没有提到表中的问题和您使用的动态sql,你可以做一个搜索表的名字在你的程序中,如果它们不存在打击他们离开。

我也输出的所有sprocs、职能,等等。以文本文件和所做的搜索表格的名称。如果找不到,或者在程序,将需要删除,打击他们离开。

只要删除它们,看看如果任何用户抱怨;)

它看起来像使用概要分析要的工作。一旦我让它运行的话,我应该有一个好名单的使用表。任何人不使用他们的桌子,每天大概可以等待他们能够恢复备份。谢谢,伙计。

可能太迟,以帮助mogrify,但对于有人在做一个搜索;我要搜索所有的对象使用此目的在我的代码,然后在SQL服务器运行这样的:

选择不同的'['+对象名称(id)+']'
从syscomments
中文本like'%MY_TABLE_NAME%'

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top