Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 数据库清理_Sql Server_Database_Resource Cleanup - Fatal编程技术网

Sql server 数据库清理

Sql server 数据库清理,sql-server,database,resource-cleanup,Sql Server,Database,Resource Cleanup,我继承了一个格式不好的SQL server数据库。(一些咨询公司进来做这个项目,但没有完成就离开了) 我对该数据库的主要问题是: 数据类型:很多tinyint和text类型 表没有规范化:一些键是名称而不是seq id 很多我不确定的表格正在被使用 很多我不确定的存储过程正在被使用 命名错误的表和存储的进程 我还继承了针对该数据库运行的asp.net应用程序 我想清理这个数据库。我知道必须在每个表中更改数据类型。用于清除所有额外的表和存储的进程。最简单的方法是什么。 任何其他使它更干净、更小

我继承了一个格式不好的SQL server数据库。(一些咨询公司进来做这个项目,但没有完成就离开了) 我对该数据库的主要问题是:

  • 数据类型:很多tinyint和text类型
  • 表没有规范化:一些键是名称而不是seq id
  • 很多我不确定的表格正在被使用
  • 很多我不确定的存储过程正在被使用
  • 命名错误的表和存储的进程
我还继承了针对该数据库运行的asp.net应用程序

我想清理这个数据库。我知道必须在每个表中更改数据类型。用于清除所有额外的表和存储的进程。最简单的方法是什么。 任何其他使它更干净、更小的建议都将不胜感激

我还想提到我已经安装了RedGate工具(如果有帮助的话)

谢谢您

查看他们允许从实时数据库创建项目的功能。您可以在那里做的一些事情是右键单击“查找表、视图和函数的用法”

只要以前的开发人员使用存储过程和视图而不是直接查询,它就应该以这种方式找到对项目的引用,而不会终止项目


此外,要查找未使用的存储过程,请在应用程序中每个存储过程的顶部添加一些基本日志记录,在X天之后,可能可以安全地删除表中未记录的存储过程,否则通过.NET代码进行繁琐的搜索就会找到它们。

您写道:“表没有规范化:一些键是名称,而不是seq id。“我只想指出,规范化与使用自然键或代理键无关。数据库可以很好地规范化,并使用主键和外键的名称。在我看来,这是非常开放的,没有太多细节来得到一个好的答案。您可以使用redgate的“查找无效对象”及其“智能重命名”功能查看引用的对象。但在.NET应用程序中也有对这些资源的引用。长话短说,这将是一个缓慢的修复过程。大量手动检查和一点尝试(使用智能重命名!)以及错误,以了解清理最终将如何进行。jpw-我知道名称可以用于FKs,我是说,如果表B有列(seqid,Description),则表A中的链接是A.Description=B.Description。两个选项:1。了解它的功能,并行构建一个新的并迁移数据;2.对现有系统进行增量更改