查询百万条信息第SQL数据库服务器需要什么配置
能同时超过100+人同时查询数据的服务器,数据库信息超过百万条,建议您使用单路四核机架式服务器
采用英特尔Nahalem架构的四核至强®处理器,英特尔S3420服务器芯片组、2GB DDR3 1333MHz高速大容量内存、250GB硬盘、4U机架式设计,是成长型企业信息化建设极具性价比的普及型服务器解决方案。
处理器:Xeon X3430, 内存:2G DDR3, 硬盘:SATA2 250G, 机构:4U机架式
应用范围:办公OA服务器,ERP服务器,数据库服务器,财务服务器,邮件服务器,打
产品特点:采用英特尔Nahalem架构的四核至强®处理器,英特尔S3420服务器芯片组、2GB DDR3 1333MHz高速大容量内存、250GB硬盘、4U机架式设计,是成长型企业信息化建设极具性价比的普及型服务器解决方案。
产品型号:I14564312S
产品类型:单路四核机架式服务器
处 理 器:Xeon X3430
内 存:2G DDR3
硬 盘:SATA2 250G
机 构:4U机架式
价 格:¥5699
银牌服务
重庆五年免费上门服务,全国三年免费上门服务,关键部件三年以上免费质保。
给你推荐的是国产服务器品牌正睿的产品,他们的产品性价比很高,售后也很完善,3年免费质保,3年免费上门服务,在业界口碑很不错。
Microsoft SQL Server 2000 的内存管理组件消除了对 SQL Server 可用的内存进行手工管理的需要。SQL Server 在启动时根据操作系统和其它应用程序当前正在使用的内存量,动态确定应分配的内存量。当计算机和SQL Server 上的负荷更改时,分配的内存也随之更改。有关更多信息,请参见内存构架。
下列服务器配置选项可用于配置内存使用并影响服务器性能:
min server memory
max server memory
max worker threads
index create memory
min memory per query
min server memory 服务器配置选项可用于确保 SQL Server 至少以最小的分配内存量启动,并且内存低于该值时不会释放内存。可以基于 SQL Server 的大小及活动将该配置选项设置为特定的值。始终将 min server memory 服务器配置选项设置为某个合理的值,以确保操作系统不向 SQL Server 请求太多内存而影响 SQL Server 性能。
max server memory 服务器配置选项可用于:在 SQL Server 启动及运行时,指定 SQL Server 可以分配的最大内存量。如果知道有多个应用程序与 SQL Server 同时运行,而且想保障这些应用程序有足够的内存运行,可以将该配置选项设置为特定的值。如果这些其它应用程序(如 Web 服务器或电子邮件服务器)只根据需要请求内存,则 SQL Server 将根据需要给它们释放内存,因此不要设置 max server memory 服务器配置选项。然而,应用程序通常在启动时不假选择地使用可用内存,而如果需要更多内存也不请求。如果有这种行为方式的应用程序与 SQL Server 同时运行在相同的计算机上,则将 max server memory 服务器配置选项设置为特定的值,以保障应用程序所需的内存不由 SQL Server 分配出。
不要将 min server memory 和 max server memory 服务器配置选项设置为相同的值,这样做会使分配给 SQL Server 的内存量固定。动态内存分配可以随时间提供最佳的总体性能。有关更多信息,请参见服务器内存选项。
max worker threads 服务器配置选项可用于指定为用户连接到 SQL Server 提供支持的线程数。255 这一默认设置对一些配置可能稍微偏高,这要具体取决于并发用户数。由于每个工作线程都已分配,因此即使线程没有正在使用(因为并发连接比分配的工作线程少),可由其它操作(如高速缓冲存储器)更好地利用的内存资源也可能是未使用的。一般情况下,应将该配置值设置为并发连接数,但不能超过 1,024。有关更多信息,请参见max worker threads 选项。
说明当 SQL Server 运行在 Microsoft Windowsreg; 95 或 Microsoft Windows 98 上时,最大工作线程服务器配置选项不起作用。
index create memory 服务器配置选项控制创建索引时排序操作所使用的内存量。在生产系统上创建索引通常是不常执行的任务,通常调度为在非峰值时间执行的作业。因此,不常创建索引且在非峰值时间时,增加该值可提高索引创建的性能。不过,最好将 min memory per query 配置选项保持在一个较低的值,这样即使所有请求的内存都不可用,索引创建作业仍能开始。有关更多信息,请参见 index create memory 选项。
min memory per query 服务器配置选项可用于指定分配给查询执行的最小内存量。当系统内有许多查询并发执行时,增大 min memory per query 的值有助于提高消耗大量内存的查询(如大型排序和哈希操作)的性能。不过,不要将 min memory per query 服务器配置选项设置得太高,尤其是在很忙的系统上,因为查询将不得不等到能确保占有请求的最小内存、或等到超过 query wait 服务器配置选项内所指定的值。如果可用内存比执行查询所需的指定最小内存多,则只要查询能对多出的内存加以有效的利用,就可以使用多出的内存。
附实例一篇:
最近,为了能在数据库服务器中运行其他应用程序,在保持数据库操作系统版本不变的前提下对数据库服务器进行了软、硬件上的升级。在软件上,将操作系统从Windows 2000升级到Windows Server 2003;在硬件上,将服务器中的内存由原来的512MB增加到1GB(1024MB)。
在升级后的开始几个星期之内,服务器在使用中表现良好。但是不久后就发现,在服务器上同时运行的其他应用程序却出现了异常,不时地报出内存分配不足的警告。经过几次跟踪后发现,原来是SQL Server吞去了大部分内存所致。被SQL Server占用的内存由升级前的不到400MB一下子增加到现在的900MB,并且有不断增长的趋势。
通过查找原因才知道这是SQL Server 缓冲池的预期行为。默认情况下,在启动 SQL Server之后,SQL Server会根据操作系统报告的物理内存数来动态增大或缩小高速缓冲存储器的容量。只要可用物理内存大小保持在4MB到10MB之间,SQL Server 缓冲池就会继续增大(保留可用物理内存在4MB到10MB之间是为了避免操作系统因为缺少内存而频繁地换页)。如果物理可用内存变得较少的时候,则SQL Server会将一些内存释放给操作系统。
为了使运行在服务器上的应用程序都能达到比较满意的效果,同时也为了能给其他应用程序分配足够的内存,需要采取措施限制SQL Server 的内存使用量。我们可以通过设置SQL Server 数据库引擎使用的内存的上下限来达到此目的。其具体步骤是:
1打开企业管理器,展开服务器组。
2单击该服务器,点击鼠标右键,单击属性菜单。
3在弹出的对话框中单击内存选项卡。
内存设置方法有两种:
1设置min server memory和max server memory 在一个范围段内。
比如,我们将它设置成最小0MB,最大255MB。这种方法在为一台服务器中运行多个应用程序分配内存时非常有用。
2设置 min server memory 和 max server memory 为同一数值。
比如,可以将它最大和最小值都设置成255MB。这样的设置方法与窗口中的另一个选项“使用固定的内存大小” 相一致。
虽然内存最小值和最大值设置是高级选项,但在设置完毕之后,最好还是先将SQL Server服务停止后再重新运行,以便SQL Server能更好地对内存进行合理安排。
SQL服务器内存有两种基本管理方法:动态分配和静态分配
控制程序可使用的内存数量。动态分配允许管理员声明一块内存的大小;考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且(理论上)在没有使用内存的情况下将其释放。静态分配则是创建一块固定的内存空间,提供给SQL Server使用——不再进行分配。
在默认情况下,SQL Server被设置成动态分配,分配给其正在运行的计算机内所有可用的物理内存。许多管理员注意到SQL Server内存随时间的流逝被逐渐消耗殆尽时,其原因很可能是故障或是内存漏洞,但这个程序正是被设计成这样的。SQL Server就是要在任何可能的情况下在电脑中运行,并因此为达到其最佳性能而使用所有可用的内存。如果SQL Server在独立的机器中运行,那么就让它分配和释放其需要的内存吧。
在一个小型商业服务器机器中,SQL可能与其他程序,如IIS,同时运行,管理员或许尝试着进行设置,使SQL Server运行在一块固定大小的内存,目的是控制其不会占用用于共享的内存。但这并不一定能如愿以偿。一方面,将内存的最高限度设置得太低,并且没有分配给SQL服务器足够的可用内存来用作类似事务日志或查询执行的缓存,所有这些都很难办到。使SQL服务器得到执行操作所需内存的惟一方法就是换出其他的页面,这是个缓慢的过程。
有许多方法可以计算出最好的内存分配。如果你有可预知的用户负载,依照用户所需的最大数目分配给他们。微软推荐至少用4 MB用作动态的最大空间,这已经成为一个可能的规则。如果你的用户负载变化范围很大——如以下情况,当你通过IIS 的前端连接到公共的因特网来支持你的数据库服务的时候——实时的统计数据将会比仅凭猜测所作的工作帮助更大。在高峰期,把SQL Server的高速缓存命中率和每秒缺页率等性能数字搜集起来。如果这些数据表明SQL Server正在做大量的交换,那么增加最大内存空间直到交换逐渐减少。每秒一次或更多次的交换是有坏处的。
另一种选择是使“为SQL Server预留物理内存”的选项可用,这可以防止SQL Server把已经分配给它的内存换出,即使当其他应用程序能够使用它时。这可以叫做是一把双刃剑:它既可以相当大程度的提高性能,也可能带来更大的性能损害。在有许多RAM 可以共享的(1 GB 或更多)的系统中,这是值得一试的,但是当有其他关键的进程可能突然需要大量的内存时,这种办法是不应该使用的。(并且如果需要的话,SQL Server可能会被迫放弃一些它自己的内存)。如果SQL Server是在独立的机器上运行,用这种办法最佳化性能则是值得的。
0条评论