过去几个月,我们一直在研究基于 SQL 的遗留系统,试图提高性能,并尽可能多地利用代码库,因此现在我们将注意力转向基础设施。
问题是我们的遗留系统偶尔会遇到 SQL 超时。
这个遗留系统位于运行公司所有 SQL 数据库的同一台服务器上。其中包括 Sharepoint、Blackberry 服务、用于 x9 虚拟服务器的服务器虚拟化数据库、众多客户端特定的报告数据库,这些数据库在中端服务器上的一个 SQL 数据库上运行。该服务器已有三年历史。您能否告诉我这台服务器是否可能因这些业务服务而超载,如果是,哪一个最有可能负责?该公司有 100-150 名员工。服务器有 4GB 内存。
此外;
LegacySystemDB 大小:14040384
SharePointSite1 大小:6581568
vCenter 3412928
SharePointSite2 大小:903032
其他数据库大约有 50-100,000 个
谢谢
答案1
答案很简单,购买更多 RAM 并将其安装在服务器中。由于只有 4 GB 的 RAM,SQL 可能只能使用 2 GB,而其他 2 GB 由 Windows 使用。这只为 SQL 提供了大约 1 GB 的内存来缓冲数据。一旦该缓冲区已满,SQL 所需的任何其他数据都必须来自磁盘。我猜你是从磁盘中提取数据,将其留在内存中几秒钟,然后将其刷新出来,为新数据进入内存腾出空间。
首先添加更多 RAM。总共增加 16 GB(再增加 12 GB),看看这对性能有何帮助。
然后请某人对索引进行一些性能调整,看看是否有需要添加或删除的索引。您是否使用 SQL Profiler 来识别昂贵的查询并对其进行调整?