应用题

某商场新购了一套商品经营管理系统,此系统使用SQL Server 2008数据库管理系统。此系统上线运行前,需将商场原有的数据导入到新系统中。原有系统使用SQL Server 2000,数据结构与新系统不完全一致。为了保证数据一致性,数据导入过程中要求暂停业务且必须在2小时内完成。

问答题

在原有数据导入新系统的过程中, 实施人员发现原有数据量很大, 导入数据需要 4 小时, 业务无法接受。经分析某工程师认为, 数据导入过程中数据库系统 I/O 很高, 但导入数据的程序本身对系统资源占用很低。 该工程师建议将数据导入过程中的数据库恢复模式从“完整” 模式改为“简单” 模式以提高数据导入速度; 而另一位工程师则认为此方法未必能提高数据导入速度, 而且还可能导致数据丢失, 不建议使用此方法。
请分析此方法是否能够提高数据导入速度并给出理由, 同时请分析此操作的数据丢失风险。

【正确答案】

此方法能够提高数据导入速度。
原因: 此系统 I/ O 操作很多, 修改模式后, 系统将最大限度减少日志开销, 提高导入速度。 由于仅在数据导入过程中修改恢复模式, 所以并无丢失数据的风险。

【答案解析】
问答题

在成功导入历史数据后, 此系统顺利上线运行。 在上线运行的第一周, 发现数据库服务器 CPU 使用率很高, 达到近 90%, 高峰期间达到 100%, 且系统内存使用率达到 90%, 但系统 I/ O 很轻。 业务人员反映系统操作速度很慢。 为了提高系统运行速度, 在不修改应用程序的前提下, 两位工程师提出了不同的解决方法:
i.为服务器增加 2 颗 CPU, 缓解 CPU 使用率很高的问题。
ii.为服务器增加一倍内存, 缓解内存使用率很高的问题。 考虑成本, 现阶段只能按照一种方案实施。
请指出在现有情况下, 哪种方案更合理并给出理由。

【正确答案】

第一种方案比较合理。
原因: 由于 SQL Server 采用将数据缓冲在内存中的方式, 因此内存使用率较高是正常情况, 且现阶段 I/O并不存在问题, 说明当前阶段内存满足需求。 而现阶段 CPU 使用率很高, 说明 CPU 计算资源不足, 因此增加CPU 数量对解决问题更有效。

【答案解析】