如果能在实例级别为同一SQL服务器上的不同实例限制其能够使用的最大和最小内存,就能降低这种情况对其他应用系统的影响。具体的 *** 作如下:
(一)实例的最大和最小内存设置
右击数据库,选择属性,如图。
为实例设置合适的最大和最小内存,如图。
(二)为 *** 作系统预留足够的内存
假如一台8GB的服务器,我们可以限制数据库使用的内存上限不超过6GB,剩下的2GB留给 *** 作系统使用。
(三)配置lockpagesinmemory
查看SQL进程的启动账户,如图。
在组策略里设置启动SQL Server的账户拥有锁定内存页的权限。如图。
在下图的添加用户或组界面,添加SQL server的服务启动账户,如图。
最大值(数量或大小)对象SQLServer7
0SQLServer2000批处理大小65,536网络数据包大小165,536网络数据包大小1每个短字符串列的字节数8,0008,000每个text、ntext、或image列的字节数2最大值(数量或大小)对象SQLServer7
0SQLServer2000批处理大小65,536网络数据包大小165,536网络数据包大小1每个短字符串列的字节数8,0008,000每个text、ntext、或image列的字节数2GB-22GB-2每个GROUPBY、ORDERBY的字节数8,060每个索引中的字节数9009002每个外键的字节数900900每个主键的字节数900900每行字节数8,0608,060存储过程源文本中的字节数批处理大小之较小者或者250MB批处理大小之较小者或者250MB每个数据表的聚集索引数11GROUPBY、ORDERBY中的列数只受字节数限制GROUPBYWITHCUBE或WITHROLLUP语句中的列数或表达式数目10每个索引的列数1616每个外键的列数1616每个主键的列数1616每个基础数据表的列数1,0241,024每个SELECT语句的列数4,0964,096每个INSERT语句的列数1,0241,024每个客户端的连接个数已配置连接的最大值已配置连接的最大值数据库大小1,048,516TB31,048,516TB3每个SQLServer实例的数据库个数32,76732,767每个数据库的文件组个数256256每个数据库的文件个数32,76732,767文件大小(数据)32TB32TB文件大小(日志)4TB32TB每个数据表的外键表引用253253标识符长度(以字符计)128128每台计算机的实例数暂缺16包含SQL语句的字符串长度(批处理大小)65,536网络数据包大小165,536网络数据包大小1每个连接的锁数每个服务器的最大锁数每个服务器的最大锁数每个SQLServer实例的锁数2,147,483,647(静态)SQLServer40%的内存(动态)2,147,483,647(静态)SQLServer40%的内存(动态)嵌套存储过程层数3232嵌套子查询3232嵌套触发器层数3232每个数据表的非聚集索引个数249249SQLServer实例中同时打开的对象个数42,147,483,647(或可用内存)2,147,483,647(或可用内存)每个数据库中的对象个数2,147,483,64742,147,483,6474每个存储过程的参数个数1,0241,024每个数据表的REFERENCE个数253253每个数据表的行数受可用存储资源限制受可用存储资源限制每个数据库的数据表个数受数据库中的对象个数限制4受数据库中的对象个数限制4每个SELECT语句的数据表个数256256每个数据表的触发器个数受数据库中的对象个数限制4受数据库中的对象个数限制4每个数据表的UNIQUE索引个数或约束个数249个非聚集索引和1个聚集索引249个非聚集索引和1个聚集索引1
网络数据包大小是表格格式数据方案(TDS)数据包的大小,该数据包用于应用程序和关系数据库引擎之间的通讯
默认的数据包大小为4KB,由networkpacketsize配置选项控制
2
在SQLServer2000中,任何键的最大字节数不能超过900
可以使用可变长度的列来定义键,只要在这种列中不插入数据超过900字节的行,其最大大小就可以在900以上
有关更多信息,请参见索引键的最大值
3
当使用SQLServer2000DesktopEngine或Microsoft数据引擎(MSDE)1
0时,数据库的大小不能超过2GB
4
数据库对象包括所有的表、视图、存储过程、扩展存储过程、触发器、规则、默认值及约束
首先简述一下SQL Server内存占用的特点 SQL Server所占用的内存除程序(即SQL Server引擎)外 主要包括缓存的数据(Buffer)和执行计划(Cache) SQL Server以 KB大小的页为单位存储数据 这个和SQL Server数据在磁盘上的存储页大小相同 当SQL Server执行SQL 语句时 如果需要的数据已经在其内存中 则直接从内存缓冲区读取并进行必要的运算然后输出执行结果 如果数据还未在内存中 则首先将数据从磁盘上读入内存Buffer中 而我们通常评价SQL性能指标中的IO逻辑读取数对应的正是从内存缓冲区读取的页数 而IO物理读取数则对应数据从磁盘读取的页数
注 以下的试验在多人共享的开发测试服务器上也可以进行 因为实际上可以分别看到某个表所占用的内存情况 但为了方便 笔者在做此试验时 在一个单独的 确认没有其它并发任务的数据库上进行 因此所看到的内存变化正是每一次所执行的SQL语句引起的
我们首先来看一个简单的实例 创建下表
以下是引用片段 Create Table P_User ( UserMobileStatus int NOT NULL MobileNo int NOT NULL LastOpTime DateTime Not NULL )
然后为该表插入一定的数据
以下是引用片段 Declare @i int Set @i= WHILE @i< BEGIN Insert Into P_User Select @i % @i GetUTCDate() Set @i=@i+ END
然后我们在查询分析器中首先执行:
以下是引用片段 Set Statistics IO ON
并按下Ctrl+M以显示实际的执行计划
此时 可以开始进行我们的试验了 为了准确观察每一次SQL语句变化情况 在执行第一条SQL语句以前 我们首先清空SQL Server所占用的数据内存
以下是引用片段 CHECKPOINT GO DBCC DROPCLEANBUFFERS
这将清空SQL Server所占用的数据缓冲区(此语句在生产服务器上慎用 因为将导致一段时间内后续的SQL语句执行变慢)
执行高选择性选取
执行如下的SQL语句
以下是引用片段 Select From P_Order A Inner merge JOIN P_User B ON A MobileNo=B MobileNo Where A MobileNo=
在两个表都没有任何索引情况下 两张表都将执行全表扫描 要读入所有的数据页到内存 总体逻辑读取决于两表的数据页数
在一个表有聚集索引或者非聚集索引情况下 该表将执行Index Seek 另一个表将出现全表扫描 内存数据缓冲区中 将有一张表只读入最终数据所在的数据页 一张表读入全部数据页 逻辑读数取决于表在联接中的秩序 以及无索引表的数据页数
lishixinzhi/Article/program/SQLServer/201311/22449
SQL Server是微软公司开发的一个关系数据库管理系统,以Transact_SQL作为它的数据库查询和编程语言。T-SQL是结构化查询语言SQL的一种,支持ANSI SQL-92标准。
SQL Server 采用二级安全验证、登录验证及数据库用户帐号和角色的许可验证。SQL Server 支持两种身份验证模式:Windows NT身份验证和SQL Server 身份验证。70版支持多种类型的角色,"角色"概念的引入方便了权限的管理,也使权限的分配更加灵活。
SQL Server为公共的管理功能提供了预定义的服务器和数据库角色,可以很容易为某一特定用户授予一组选择好的许可权限。 SQL Server可以在不同的 *** 作平台上运行,支持多种不同类型的网络协议如TCP/IP、IPX/SPX、Apple Talk等。SQL Server在服务器端的软件运行平台是Windows NT、Windows9x,在客户端可以是Windows3x、Windows NT、Windows9x,也可以采用其它厂商开发的系统如Unix、Apple Macintosh等。
微软的SQL Server是一项完美的客户/服务器系统。SQL Server需要安装在Windows NT的平台上,而Windows NT可以支持Intel 386,Power PC,MIPS,Alpha PC和RISC等平台,它使SQL Server具备足够的威力和功能。
这里所有的文章所采用的数据库应用程序都是基于SQL Server之上的,采用ODBC及标准的SQL查询,可以非常简单的移植到任何一个支持ODBC的数据库之上,如:Oracle,Informix,Db2和Access,在阅读有关ASP数据库编程技术之前,要确认你至少熟悉一种数据库管理系统,并可以使用标准的SQL查询语言 *** 作数据库。
SQL Server提供服务器端的软件,这部分需要安装在NT Server上,SQL Server的用户端则可以安装在许多用户端PC系统中,Windows可以让用户端进行数据库的建立,维护及存取等 *** 作,SQL Server可以最多定义32767个数据库,每个数据库中,可以定义20亿个表格,每个表格可以有250个字段,每个表格的数据个数并没有限制,每一个表格可以定义250个索引,其中有一个可以是Clustered索引。
SQL Server所使用的数据库查询语言称为Transact-SQL,它是SQL Server的核心,Transact-SQL强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,Transact-SQL扩充了流程控制指定,可以使你方便的编写功能强大的存储过程,他们存放在服务器端,并预先编译过,执行速度非常块,触发是一种特殊的存储过程,用来确保SQL Server数据库引用的完整性,你可以建立插入,删除和更新触发以控制相关的表格中对数据列的插入,删除和更新,你还可以使用规则(Rule),缺省(default)以及限制(Constraints),来协助将新的数值套用到表格中去!
SQL SERVER的特点与评价
上手容易
话分两头,如果您的企业至今还未购置数据库,其中一个主要的原因可能就是认为它不好上手,那么,从SQLServer开始吧。毕竟,大多数的中小企业日常的数据应用是建立在Windows平台上的。由于SQLServer与Windows界面风格完全一致,且有许多"向导(Wizard)"帮助,因此易于安装和学习,有关SQLServer的资料、培训随处可得,并且目前国内具有MCDBA认证的工程师不在少数。
从另一个角度来讲,学习SQLServer是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。因为这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。但有了SQLServer的基础,再去学习和使用它们就容易多了。IT行业的实践经验充分证明了这一点。
兼容性良好
由于今天Windows *** 作系统占领着主导地的位,选择SQLServer一定会在兼容性方面取得一些优势。另外,SQLServer2000除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮XML数据,可以将搜索结果以XML格式输出等特点,有利于构建了异构系统的互 *** 作性,奠定了面向互联网的企业应用和服务的基石。这些特点在NET战略中发挥着重要的作用。
电子商务
在使用由MicrosoftSQLServer2000关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。你还可以使用HypertextTransferProtocol(超文本传输协议,>
MSDE的全称是MicrosoftSQLServerDesktopEngine,它是一个基于SQLServer核心技术构建的数据引擎。MSDE2000支持单处理器和双处理器,是面向小型应用程序桌面扩展的可靠的存储引擎和查询处理器。MSDE与SQLServer完全兼容,并且MSDE是免费的。
SQLServer系列产品具有各种发行版本,用以满足在不同的环境下对处理的数据量、并发用户数和硬件的不同要求。一般来说,MSDE适合在并发用户数小于5人,数据量低于2GB的情况下使用。当数据量和并发用户数超过上面的配额的时候,SQLServer成为了更好的选择。由于MSDE与SQLServer完全兼容,开发人员可以使用同样的数据访问语言在规模相对较小的MSDE数据库系统和规模较大的SQLServer数据库系统之间实现无缝转换,并且,当所在组织的规模扩大后对数据库系统的功能和性能提出新的需求时,则可以在不修改现有数据库应用程序中的任何代码的情况下,将它完全移植到基于SQLServer的平台上运行。
以上就是关于如何设置SQLServer数据库内存全部的内容,包括:如何设置SQLServer数据库内存、SQLServer2000的数据库容量究竟是多大(数据库的容量是多少)、SQL Server执行SQL语句时内存占用特点[3]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)