热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

大内存SQLServer数据库的加速剂-mysql教程

为数据库配置比较大的内存,可以有效提高数据库性能。因为数据库在运行过程中,会在内存中划出一块区域来作为数据缓存。通常情况下,用户访问数据库时,数据先会被读取到这个数据缓存中。当下次用户还需要访问这个数据时,就会从这个数据缓存中读

为数据库配置比较大的内存,可以有效提高数据库性能。因为数据库在运行过程中,会在内存中划出一块区域来作为数据缓存。通常情况下,用户访问数据库时,数据先会被读取到这个数据缓存中。当下次用户还需要访问这个数据时,就会从这个数据缓存中读

  为数据库配置比较大的内存,可以有效提高数据库性能。因为数据库在运行过程中,会在内存中划出一块区域来作为数据缓存。通常情况下,用户访问数据库时,数据先会被读取到这个数据缓存中。当下次用户还需要访问这个数据时,就会从这个数据缓存中读取。因为在数据缓存中读取数据要比在硬盘上读取数据快几百倍。所以扩大数据库服务器内存,可以有效提高数据库性能,特别是操作大型数据库时效果更加明显。

  但是,现在企业中普遍采用的数据库服务器都是32位的操作系统。而这个32位的操作系统却有最大内存的使用限制。通常情况下,标准的32位地址最多可以采用4GB的内存。若数据库管理员想让数据库系统采用更多的内存来提高数据库的性能,则就需要进行额外的配置。下面笔者就介绍两种常用的配置方式,让SQLServer数据库服务器支持大内存,让其成为数据库的加速剂。

  一、让数据库应用程序支持3GB的内存空间

  虽然操作系统支持4GB内存。可是,这并不会全部给数据库等应用程序使用。默认情况下,在32位操作系统中,将有2GB的内存空间是为操作系统所保留的。即使没有用完,其他应用程序也是不能够染指的。而包含SQL Server数据库在内的所有应用程序,只能过采用剩余的2GB内存空间。

  但是,在实际应用中,操作系统往往用不着多大2G的内存。根据笔者的经验,一般只要为操作系统保留1G的内存已经足够其使用。只要没有病毒等不良因素作怪,这个内存不会被完全适用。如此的话,应用程序可以采用的内存空间就会多达3G,比原先整整多出一个G来。

  要实现这个转变,其实很简单。在Windows操作系统中,有一个BOOT启动配置文件。为了让数据库服务器支持3GB的用户模式进程空间,必须在这个配置文件中,加入一个/3gb的参数,然后重新启动操作系统即可。这么设置之后,应用程序就可以寻址3GB的进程地址空间 ,而为操作系统保留1GB的内存空间。

  有时候,这个小小的配置可以在很大程度上提高数据库的性能。记得有一次,笔者为一家企业优化数据库性能。笔者查看了用户的数据库环境之后,就建议用户增大数据库服务器的内存,从2G增加到4G.可是,效果并没有很大的改善。正当笔者束手无措的时候,就想到了改变操作系统与应用程序的内存分配方式。为此,笔者就更改了BOOT启动配置文件,只给操作系统保留1G的内存空间。重新启动后,数据库性能得到了很大的改善。

  二、为SQLServer启用更高的内存支持

  如果数据库应用程序内存寻址空间达到3GB后,数据库管理员还不满足的话,则就需要通过增加物理内存的方式,来提高应用程序的性能。若需要服务器操作系统突破其默认4GB内存空间的限制,支持4GB以上的内存空间,也不是不可能的。只是需要进行额外的配置,并且,其维护的工作量也比较大。

  若想要SQLServer数据库支持4GB以上的内存寻址空间,则往往需要进行如下配置。

  第一步:锁定内存页。

  默认情况下,内存大小与操作系统的虚拟内存之间有一个正比例关系。在这里,数据库管理员只想增大服务器的物理内存,而不想对虚拟内存有什么影响。故需要锁定内存页。锁定内存页的主要作用就是确定哪些帐户可以使用进程将数据保留在物理内存中,从而阻止系统将数据分页到磁盘的虚拟内存中。默认情况下,这个选项的只为OFF.也就是说,在必要的时候,系统会将数据分页到硬盘的虚拟空间中。为了最大程度发挥内存的效用,就需要把这个选项开启。不过这数据库管理员往往需要寻求系统管理员的帮助,因为只有具有系统管理员权限的用户,才能够给更改这个选项。

  第二步:启用Awe Enable选项。

  默认情况下,即使服务器操作系统支持4GB以上的内存空间,可是数据库应用程序并不一定支持。为了让SQLServer应用程序也支持这个,就必须更改数据库的配置参数。也就是说,需要将这个选项的值设置为1,然后重新启动数据库系统。这个配置比较简单,只需要利用命令sp_configure 'awe enabled', 1即可。不过在进行这个配置之前,需要注意两个细节方面的内容。一是数据库用户需要这个操作的权限。二是这里有一个BUG,即在SQL Server数据库中会有一个错误信息。数据库管理员可以忽略这个信息。

  第三步:限制文件系统缓存。

  若增加的内存给操作系统或者其他应用程序用了,那么数据库管理员不是白忙一场吗?为此,数据库管理员还需要优化数据库系统内存的使用情况。如需要限制系统用于文件缓存的内存量。如要这么处理的话,只需要简单的三个步骤即可。

  首先,数据库管理员在操作系统中,找到控制面板,并双击网络连接,然后选中本地连接。其次,双击本地连接,在弹出的对话框中,找到常规选项卡,单击属性。选中网络文件与打印机共享,并单击属性。最后,在弹出的对话框中,去掉"最大化网络应用程序数据吞吐量"复选框。一路按确认即可。这个简单的步骤,就可以优化数据库内存的使用率。

  三、大内存维护管理几个关键点

  在通常情况下,往往不需要启用4GB以上的内存。但是,若在服务器上,同时启用了其他的应用程序服务。如在一台服务器上同时有数据库应用程序、邮件应用程序、文件服务器等多个应用服务的话,则可能原有的4GB内存无法满足。系统管理员不得不对内存进行升级。但是,对内存升级之后,数据库管理员需要手工对内存的分配进行干预,以免SQLServer应用程序占用比较多的内存空间,而影响其他应用程序的性能。

  1、配置max server memory选项。虽然说这个选项并不是必须要修改的,但是笔者仍强烈建议数据库管理员要修改这个选项。特别是数据库应用程序与其他应用程序共享同一台服务器时。因为启动SQLServer对大内存的支持后(将Awe Enabled设置为1),而且可用物理内存大于用户模式进程空间。则当启动数据库服务器时,运行的SQLServer实例将会占用几乎所有的可用内存 (不管需不需要使用,数据库服务器程序会先锁定这些内存。这就叫占着茅坑不拉屎)。而这个max server memory选项就是用来配置其最大可以占用的内存数量。数据库管理员需要预先估算出一个合理的数值,然后进行配置。让数据库应用程序与其他应用服务能够共同改善,至少不能够对其他应用程序的性呢产生不良影响。在比较极端的情况下,可以在升级内存之前,先关闭数据库应用程序;然后启用其他应用程序服务。观测一段时间,看看他们所需要用到多少的内存。然后升级内存,并为其他应用程序至少保留以前所需要的内存空间。否则的话,就会对其他应用程序产生不良影响。牺牲其他应用程序的性能来提高数据库的性能,这是拆西墙补东墙的做法,不值得取。

推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
author-avatar
mobiledu2502914555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有