Microsoft Access是一个简单好用的开发工具,即使你没有开发经验也可以写出Access程序。可能在你的组织中很多部门内部都有内部使用的Access数据库,它们因为某些原因而被创建出来,并存在已久。另一方面,还存在着很重要的原因,需要将这些部室内的Access数据库合并到一个集中的SQL Server数据库。
将Access数据库迁移到SQL Server的理由
下面是一些将外围的Access数据库迁移到SQL Server环境的主要理由:
- 对数据库的多用户访问。现在,Access数据库可能在你的用户群中很流行,但是这也会引起问题。Access数据库只能在适当的性能水准上满足少数用户的请求。如果更多用户开始使用这个应用,那么Access数据库无法进行良好的扩展。而SQL Server可以处理数千个用户,因此是多用户环境的理想选择。
- 重新设计和编写让应用变得一些少,性能好一些。现在可能就是重新编写现有的应用的正确的时机,这样让应用更少和更好。许多Access应用很可能是由非专业IT部门的人员来开发的,对他们来说Access不是非常熟悉的。代码和数据库可能没有按照现有的开发标准来开发,由于缺乏足够的经验和时间,可能被设计和编写的质量很差。通过集中常用的处理,你的整个组织都可以从标准化和统一应用和数据中获益。
- 和外部环境交换数据。SQL Server提供了更好的工具和Oracle、DB2和SAP等其他的环境进行通讯。通过数据转换服务/集成服务(Data Transformation Services/Integration Services ,DTS/SSIS),和其他环境的数据交换可以在现有的应用中自动处理或者集成。
- 更先进的分析和解决性能问题的方法。这些工具包括SQL Profiler,Query Analyzer中的执行计划(execution plan),index tuning向导和使用filegroup来跨磁盘扩展数据。SQL Server还拥有专为多用户环境设计的更好的锁机制。
- SQL Server优于Access的数据库安全。Windows和SQL Server提供对用户和多个数据库的访问进行管理的先进的认证功能;数据库角色;对数据库授权的多种方式。
合并到SQL Server环境的理由
将迁移后的SQL Server数据库合并到集中的环境的理由包括:
- 对数据库的集中控制、集中管理。创造自动化和集中的维护和备份的过程,一切都在一个点被控制和处理,这样就让管理非常容易。
- 对数据库和应用的管理移交给IT部门将为其他部门节约时间。大多数情况下,应用开发和维护不是这些部门的主要角色。
- 让应用有一个集中的数据源。你可以在集中的位置保留和使用常用数据,这样可以避免复制数据,造成数据不一致的情况。
- 高可用性。有很多方法可以保证集中式的SQL Server实例的可用性,比如日志传送(log shipping)、集群(clustering)、 复制(replication)、数据镜像(data mirroring)和数据库快照(database snapshot)。但是维护分布式的数据库则是一项非常复杂的过程。你必须为每个已有的数据库保留和维护一份备份或者二级数据库。
- 更方便的软件升级。在集中的位置升级数据库服务器版本是非常简单的。同样,升级集中的数据也是很方便的,因为升级只发生一次。一个例子就是在必要的情况下升级静态的表。
为什么是SQL Server?
Access数据库和SQL Server是师出同门,因此在很多地方都相似。迁移过程是相对容易。甚至,你可以保留现有的Access应用,而只迁移数据库。让Access作为客户应用而SQL Server作为后台的数据库的架构——除非应用被重写,这只是一个临时解决方案——是很自然的,并且被Microsoft支持作为单点引用。开始的时候,Access应用可以通过ODBC连接到SQL Server,以后你可以修改它使用OLE DB,这样可以提供更好的性能。但是,访问方式从ODBC变为OLE DB可能要对应用代码的修改。