MS SQL Server 2005该升级了吗?如何进行数据库的梳理工作?

轻舟已过万重山 2013-04-18 08:48:06
背景:
1.系统是10年前开始自主开发的系统(BS,ASP)。当前的数据库是MS SQL Server 2005(应该是从2000升级上来的)。
问题:
1.表很乱,有700个表吧,不过估计有20%甚至更多是没有用的。
2.没有数据字典,表和字段命名中英文混杂,看不懂。
3.很多地方没有外键约束,导致了数据库里面有很多错误数据。
4.现在数据库里面大量的存储过程,触发器,很多视图,然后有很多SQL效率低下,经常导致系统动不了了。

想法:
1.重新架构和实现系统。
2.反正是做新系统,老的系统先不要去动了。用SQL Server的新版本建立新的数据库。
3.逐步去梳理一个个的表。通过程序把旧的数据库里面的数据导入新的数据库。

难题:
1. 新的数据库和原来那个旧的数据库,如何去做数据同步(实时)。

这个思路有没有问题?应该如何去解决这个难题。
...全文
222 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyf0130 2013-04-25
  • 打赏
  • 举报
回复
引用 9 楼 skytear 的回复:
..... A方案:用新的数据库 好处:根据现有的业务需求,整理业务模型,设计的数据库,肯…… B方案:保持数据库结构不变
....现在数据库里面大量的存储过程,触发器,很多视图,然后有很多SQL效率低下,经常导致系统动不了了..... 因为有 触发器 这个地雷,基本上 B方案:保持数据库结构不变 就被否决了
  • 打赏
  • 举报
回复
现在老系统是决定了要用新的技术架构来做实现,因为10年前做的这个系统有较多的问题,已经不能满足现在业务上,性能上,安全上的要求。并且大家都认为重构不显示,所以新的技术架构会采用,新系统是要做的了。 问题就剩下: 做新的技术架构,用A方案:新的数据库,B方案:保持现有数据库不动。 A方案:用新的数据库 好处:根据现有的业务需求,整理业务模型,设计的数据库,肯定更加合理,干净,规范,可以有更好的规划。 坏处:在新的系统没有完成之前,时间跨度太大,如何保证新的数据库和旧的数据库中数据的同步?因为等不到新的系统开发好了再一次性做数据迁移。 B方案:保持数据库结构不变 好处:不存在数据需要同步的问题,对同时使用和维护的旧系统基本没有影响。 坏处:所有人都认为旧的数据库系统结构,关系,主键,外键,字段等等都不合理。在这样一个不合理的数据库结构上做新的技术架构,普遍认为效果会不好。 如何决策?
Q315054403 2013-04-22
  • 打赏
  • 举报
回复
开发新系统,测试,导入旧系统测试,完成后再交割。。不需要实时同步
seusoftware 2013-04-21
  • 打赏
  • 举报
回复
新系统做出来,确定没问题了,做一次割接,老系统的数据什么的一次斩断关系。 怎么确定新系统没有问题? 1. 可以通过老系统的数据,在新系统做测试; 或者 2. 可以用新版本的程序把部分用户用到新数据库上;
hgwyl 2013-04-21
  • 打赏
  • 举报
回复
其实按照楼主所说,升级数据库是不必要的——个人认为 先确定目的:为什么要升级数据库? ——感觉是楼主为了提高程序处理业务流程的效率、速度、标准性 ——问题并不是出现在“数据库的版本”。 ——而是出现在“程序与数据库的不规范”。 另外一个方面 700个表;表字段及其多。 ——这种情况下,你打算去重做这个系统吗?确定不会遇到阻力? ——不要说领导签字同意,大的企业或者单位,这没用。出现问题背黑锅的还是改动的人。 好好地做优化吧。 1、程序方面的优化 2、数据库优化 最后多嘴提醒一点:你真的认为人家开发的时候没有做数据库字典吗?稍微思考一下。
  • 打赏
  • 举报
回复
整理数据字典是需要的啦。 现在旧数据库,一个表动则100多个字段,冗余也是很厉害。 更是坚定了新系统需要重启一个新的数据库的决心。 新系统也不是短时间能简历起来的,准备一步步来。但这个时候,新旧老个系统,老个数据库,里面的数据交换,同步,很麻烦。 不知道如何解决。
zbdzjx 2013-04-18
  • 打赏
  • 举报
回复
1、先整理好旧系统的表、视图、存储过程、触发器……相关内容,去掉一些不用的。 2、分析好新系统中的表。 3、确定好旧系统与新系统中表及列的对应关系。 4、写个程序,能够一次将旧系统的资料全部导入到新系统中。 5、准备好测试,就先跑一遍程序,将旧系统资料导入到新系统中。 6、新旧两个系统同时跑,对比测试。 7、一段时间后,如果没问题,停掉旧系统。 8、如果有问题,更改问题。如涉及到表或列,与要相应修改程序,保证能够将旧系统的资料全部导入到新系统中。 9、最终测试完成,根据情况,如果新系统中的内容有问题,可以全部删除掉,用上面的程序再跑一遍,将旧系统的资料全部导入到新系统中。
發糞塗牆 2013-04-18
  • 打赏
  • 举报
回复
先重整数据字典再做其他
叶子 2013-04-18
  • 打赏
  • 举报
回复
先梳理业务关系,建立新系统,把旧系统的数据往新系统同步,等到旧的系统数据同步好后,直接使用新系统。
Mr_Nice 2013-04-18
  • 打赏
  • 举报
回复
建议直接升级到2008 R2 性价比比较好。2012按核收费,确实有点坑。 另外,既然是新建程序,建议还是直接从业务着手,按照现有业务处理,进行重新设计。 原表的相关数据,建议新程序稳定后,进行数据整理转接工作。同时做同步,需要双向进行验证,而且由于业务不同可能造成混乱的局面,尽量减少旧系统与新系统之间的交互,可限制问题在单一库上,比较容易排查。 两个程序肯定是要并行一段时间的,这个期间,人工投入会加倍,尽量增加前期的测试,可缩短这个过程。 以上经验,参考
2009年度十大SQL Server技巧文章 在向2009年告别之际,我们来回顾一下过去的一年中最受欢迎的SQL Server技巧,包括了OPENROWSET、FILESTREAM等函数的用法、密码工具介绍以及DBA日常工作建议等内容。 通过对这些精华文章的再次回顾,希望可以帮助您梳理一下这一年以来的工作以及学习心得,对未来一年更进一步打下更坚实的基础。 使用bcp工具导入和导出批量数据 微软SQL Server中的批量复制程序(Bulk Copy Program,BCP)能让数据库管理员将数据批量导入表中或将数据从表中批量导入文档中。它还支持一些定义数据如何导出、导入到什么地方、加载哪些数据等选项。  用bcp工具导入和导出批量数据(上)  用bcp工具导入和导出批量数据(中)  用bcp工具导入和导出批量数据(下) 使用SQL Server的OPENROWSET函数 你可能常常会需要运行一个ad hoc查询从远程OLE DB数据源提取数据,或者批量向SQL Server表导入数据。在这种情况下,你可以在T-SQL(Transact-SQL,微软对SQL的扩展)中用OPENROWSET函数给数据源传入一个连接串和查询来提取需要的数据。  使用SQL Server的OPENROWSET函数(上)  使用SQL Server的OPENROWSET函数(下) SQL Server密码破解工具简介 在对SQL Server系统执行入侵测试或者更高级别的安全审计时,有一种测试不应该被忽略,那就是SQL Server密码测试。这一点看起来显而易见,但是很多人都会忽略它。  SQL Server密码破解工具简介 使用XML在SQL Server上创建计算列 在SQL Server数据库中,当你想使用一个数据,而这个数据不保存在表中,计算列很有用。在SQL Server中使用XML数据来创建计算列,你的列定义必须包含必要的用来检测向列中插入的是什么数据的表达式。  使用XML在SQL Server上创建计算列(上)  使用XML在SQL Server上创建计算列(下) SQL Server中已满事务日志原因的检测 对于SQL Server数据库管理员来讲,已满事务日志是一个琐碎的,但又很常见的问题。它能引发事务的提前终止,甚至通过阻止所有事务的引入,从而引起系统的崩溃。对于数据库管理员来说,关键是理解将要发生的情况,以便他们可以追踪引起问题的原因。  SQL Server中已满事务日志原因的检测(上)  SQL Server中已满事务日志原因的检测(下) DBA五大浪费时间的工作 DBA以常规方式执行的一些任务,不仅对SQL Server数据库几乎没有益处,而且实际上可能对他们的生产环境造成不利影响。在本文中,我会阐述几类这样的工作。如果你正在执行其中的一些工作,我希望你能尽快停下来。  收缩数据库  碎片整理后重建索引  恢复完整备份  删减事务日志  人工通读错误日志 利用动态管理视图提高SQL Server索引效率 就如同数据库DBA了解的一样,合适的索引能够提高查询性能和应用程序可测量性。但是每个附加的索引,都给系统增加了额外开销,因为随着数据从表和视图中不断增加、修改或清除,SQL Server需要维护这些索引。  利用动态管理视图提高SQL Server索引效率(一)  利用动态管理视图提高SQL Server索引效率(二)  利用动态管理视图提高SQL Server索引效率(三) 在SQL Server tempdb满时检查数据文件 作为一名数据库DBA,肯定会听说过“tempdb数据库满了”。通常我们很容易确定造成这一问题的原因。但是更多的时候这一问题主要源于一组请求,涉及到新代码部署或逐渐增加的数据。  在SQL Server tempdb满时检查数据文件 SQL Server运作的简短课程 在实际执行任务之前,有一点背景信息可以会起到帮助作用。那么,到底SQL Server是如何工作的呢?不管你信不信,理解“黑盒”知识几乎可以在Microsoft SQL Server的所有方面起到帮助作用,例如从备份与存储到复制与镜像。  SQL Server运作的简短课程 实现SQL Server 2008中的文件流功能 SQL Server 2008中最新的文件流功能使得你可以配制一个数据类型为varbinary(max)的列,以便将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储在外部。  实现SQL Server 2008中的文件流功能(上)  实现SQL Server 2008中的文件流功能(下)

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧