文档库 最新最全的文档下载
当前位置:文档库 › 浅谈SQL Server 对于内存的管理

浅谈SQL Server 对于内存的管理

浅谈SQL Server 对于内存的管理
浅谈SQL Server 对于内存的管理

简介

理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理。

二级存储(secondary storage)

对于计算机来说,存储体系是分层级的。离CPU越近的地方速度愉快,但容量越小(如图1所示)。比如:传统的计算机存储体系结构离CPU由近到远依次是:CPU内的寄存器,一级缓存,二级缓存,内存,硬盘。但同时离CPU越远的存储系统都会比之前的存储系统大一个数量级。比如硬盘通常要比同时代的内存大一个数量级。

图1.计算机存储体系

因此对于SQL Server来说,正常的生产系统所配置的内存通常不能装载所有数据,因此会涉及到二级存储,也就是磁盘。磁盘作为现代计算机系统中最后的机械存储部件,读取数据需要移动磁头(具体关于磁盘的原理,可以看我之前写的一篇文章),并且由于数据库所访问的数据往往是随机分布在磁盘的各个位置,因此如果频繁的读取磁盘需要频繁的移动磁头,这个性能将会十分底下。

由计算机体存储体系结构可以知道,计算机对于所有硬盘内数据的操作都需要首先读取到内存,因此利用好内存的缓冲区而减少对磁盘IO的访问将会是提升SQL Server性能的关键,这也是本篇文章写作的出发点之一。

SQL Server引擎,一个自我调整的引擎

由于SQL Server过去一直面向是中小型企业市场的原因,SQL Server存储引擎被设计成一个不需要太多配置就能使用的产品,从而减少了部署成本,但这也是很多人一直诟病的微软开放的配置过少。而对于SQL Server如何使用内存,几乎没有直接可以配置的空间,仅仅开放的配置只有是否使用AWE,以及实例占用的最大或最小内存,如图2所示。

图2.SQL Server可控控制内存的选项

而对于具体的SQL Server如何使用内存,例如分配给执行计划缓存多少,分配给数据buffer多少,这些都无法通过配置进行调控。这也是很多其它技术的开发人员对于使用微软技术的开发人员充满优越感的原因,而在我看来,虽然SQL Server提供可控配置的地方很少,但是很多地方都可以在通晓原理的情况下进行“间接”的配置。这也需要了解一些Windows的原理。

SQL Server是如何使用内存的

SQL Server存储引擎本身是一个Windows下的进程,所以SQL Server使用内存和其它Windows进程一样,都需要向Windows申请内存。从Windows申请到内存之后,SQL Server使用内存粗略可以分为两部分:缓冲池内存(数据页和空闲页),非缓冲内存(线程,DLL,链接服务器等)。而缓冲池内存占据了SQL Server的大部分内存使用。缓冲池所占内存也就是图2最大最小内存所设置的,因此sqlservr.exe所占的内存有可能会大于图2中所设置的最大内存。

还有一点是,SQL Server使用内存的特点是:有多少用多少,并且用了以后不释放(除非收到Windows内存压力的通知)。比如我所在公司的开发服务器,在几乎没有负载的时候来看内存使用,如图3所示。

图3.SQL Server 进程的内存使用

可以看到CPU在0负载的时候,内存却占据了13个G。这其实是在之前的使用SQL Server向Windows申请的内存一直没有释放所致。

具体SQL Server能够使用多少内存是由以下几个因素决定的:

1.物理内存的大小

2.所安装Windows版本对于内存的限制(比如windows server 2008标准版限制最大内存只能使用32GB)

3.SQL Server是32位或64位

4.如图2所示配置SQL Server对于内存的使用量

5.SQL Server的版本(比如express版只能用1G内存)

SQL Server OS的三层内存分配

SQL Server OS对于内存的分配分为三个层级,依赖关系如图4所示。

图4.SQL Server OS内存依赖关系

Memory Node

首先最底层的是Memory Node,Memory Node的作用是使得分配内存由Windows移交到SQL Server OS层面执行。每个SQL Server实例通常都只拥有一个Memory Node,Memory Node的多寡只取决于NUMA构架的硬件配置。我们通过DBCC MEMORYSTATUS 可以看到Memory Node的一些信息,如图5所示。

图5.查看Memory Node信息

我们可以看出,按照申请内存大小分类,可以分为两部分

1.申请小于等于8KB为一个单位的内存,这些内存被用于缓存。(图5中的SinglePage Allocator)

2.申请大于8KB为一个单位的内存,这些内存称为Multi-Page(或MemToLeave)(图5中的MultiPage Allocator)

对于为什么叫MemToLeave,被称为MemToLeave的原因是由于SQL Server虽然大部分内存被用于缓冲区,但还需要一些连续的内存用于SQL CLR,linked server,backup buffer等操作,32位SQL Server在启动实例时会保留一部分连续的虚拟地址(VAS)用于进行MultiPage Allocator。具体保留多少可以用如下公式计算:

保留地址=((CPU核数量-4)+256)*0.5MB+256MB,通常在384MB左右。

Memory Clerk

让我们再来看Memory Clerk,Memory Clerk用于分配内存,用于将Allocate出去的内存进行分类,可以简单的进行如下语句,如图6所示.

图6.按照Memory Clerk的类别进行分类

注意:由图4可以看到,Memory Clerk只是分配内存的一部分,另一部分是数据缓存(Buffer Pool)

Buffer Pool

在开始讲述Buffer Pool之前,首先想讲一下虚拟内存。

在Windows中每个进程都有一个虚拟内存(Virtual Address Space VAS),32位系统是2的32次方,也就是4G,这4G被Windows划为两部分,一部分是Windows 使用,另一部分才是应用程序使用。虚拟内存并不是实际的物理内存,而是对于物理内存的映射,当物理内存不存在虚拟内存指向的内容时,产生缺页中断,将一部分页面置换出内存,然后将需要的部分从硬盘读到内存,关于这块,可以读我之前写的一篇文章:浅谈操作系统对内存的管理。

因此Buffer Pool的作用时缓冲数据页,使得未来读取数据时减少对磁盘的访问。

这个Buffer Pool这部分就是图2中设置最大最小服务器内存所占用的空间。这个最小值并不意味着SQL Server启动时就能占用这么多内存,而是SQL Server Buffer Pool 的使用一旦超过这个值,就不会再进行释放了。

在DBCC MEMORYSTATUS 其中有一部分我们可以看到Buffer Pool的信息,如图7所示。

图7.Buffer Pool的相关信息

在SQL Server实例启动时,Buffer Pool所保留的VAS地址空间取决于多个因素:包括实际的物理内存和SQL Server是32位或是64位(这个限制32位是4G,还要划一半给Windows和减去MemToLeave空间),而对于实际上SQL Server所使用的物理内存,可以通过如下语句查看,如图8所示。

图8.查看Buffer Pool所使用物理内存

Buffer Pool会按照需要不断的提出内存申请。Buffer Pool如果需要,Buffer Pool会不断消耗内存,直到Windows通知SQL Server内存过低时,Buffer Pool才有可能释放内存,否则Buffer Pool占据了内存不会释放。

另外值得注意的一点是,Buffer Pool所分配的页面和SQL Server OS页面大小是一致的,也就是8192字节,当SQL Server其它部分需要向”Buffer Pool”借内存时,也只能按照8k为单位借,并且这部分内存在物理内存中是不连续的,这听上去像是Buffer Pool内存管理自成体系,可以这么理解,因为Buffer Pool 不使用任何SQL Server 的page allocator,而直接使用virtual或AWE SQLOS's的接口。

所以SQL Server所占用的内存可以用这个公式粗略估算出来: buffer pool占用的内存+从buffer pool借的页占得内存+multiPageAllocator分配的非buffer pool内存,如图9所示。

图9.可以近似的估算出sql server所占的内存

Memory Object

menory object本质上是一个堆,由Page Allocator进行分配,可以通过sys.dm_os_memory_objects这个DMV进行查看,这个DMV可以看到有一列

Page_Allocator_Address列,这列就是Memory Clerk的标识,表明这个Memory Object是由哪个Memory Clerk进行分配的。

32位SQL Server的内存瓶颈

由文章前面所述的一些基本原理可以看出,由于32位的SQL Server使用的是VAS进行地址分配,因此寻址空间被限制在4GB,这4GB还要有一半分给Windows,使得Buffer Pool最多只能用到2G的内存,这使得32位SQL Server即使有多余的物理内存,也无法使用。

解决办法之一是通过减少Windows默认占用的2G到1G,使得SQL Server可以使用的内存变为3G。这个可以通过在Windows Server 2008中的命令行键入BCDEdit /set设置increaseuserva选项,设置值为3072MB,对于Windows Server 2003来说,需要在boot.ini中加上/3gb启动参数。

另一种办法是使用AWE(Address Window Extension)分配内存。AWE通过计算机物理地址扩展(Physical Address Extension PAE),增加4位,使得32位的CPU 寻址范围增加到2的36次方,也就是64GB。基本解决了寻址范围不够的问题。

VirtualAlloc和AllocateUserPhysicalPages

VirtualAlloc和AllocateUserPhysicalPages是SQL Server向Windows申请内存所使用的方法。在默认情况下,SQL Server所需要的所有内存都会使用VirtualAlloc 去Windows申请内存,这种申请是操作系统层面的,也就是直接对应的虚拟内存。这导致一个问题,所有通过VirtualAlloc分配的内存都可以在Windows面临内存压力时被置换到虚拟内存中。这会造成IO占用问题。

而使用AllocateUserPhysicalPages所申请的内存,直接和更底层的页表(Page Table)进行匹配,因此使用这个方法申请的内存不会被置换出内存。在32位SQL Server 的情况下,通过开启AWE分配内存,buffer pool中的data cache部分将会使用这个函数,而MemToLeave部分和Buffer Pool中的另一部分内存(主要是执行计划缓存)依然通过VirtualAlloc进行内存分配。

因此在开启通过AWE分配内存之前,SQL Server首先需要对应的权限,否则就会在日志中报错,如图10所示。

图10.开启AWE却没有开启对应权限报错

我们可以在组策略里设置启动SQL Server的账户拥有这个权限,如图11所示。

图11.锁定内存页(Lock Page In Memory)

64位SQL Server的问题

64位Windows基本已经不存在上述的内存问题,但是依然要注意,在默认情况下,64位的SQL Server使用的依然是VirtualAlloc进行内存分配,这意味着所有分配的内存都会在Windows面临压力时将页置换出去,这很可能造成抖动(Buffer Pool Churn),这种情况也就是SQL Server Buffer Pool中的页不断的被交换进硬盘,造成大量的IO占用(可以通过sys.dm_exec_query_memory_grants这个DMV查看等待内存的查询),因此64位SQL Server将Buffer Pool中的Date Page通过AllocateUserPhysicalPages来进行内存分配就能避免这个问题。与32位SQL Server不同的是,64位SQL Server并不需要开启AWE,只需开启如图11所示的“Lock Page In Memory”就行了。

但这又暴漏出了另一个问题,因为SQL Server锁定了内存页,当Windows内存告急时,SQL Server就不能对Windows的内存告急做出响应(当然了Buffer Pool中的非data cache和MemToLeave部分依然可以,但往往不够,因为这部分内存相比Data Cache消耗很小),因为SQL Server的特性是内存有多少用多少,因此很有可能在无法做出对Windows低内存的响应时造成Windows的不稳定甚至崩溃。因此开启了”Lock Page In Memory”之后,要限制SQL Server Buffer Pool的内存使用,前面图2中已经说了,这里就不再细说了。

还有一个问题是当Buffer Pool通过AllocateUserPhysicalPages分配内存时,我们在任务管理器中看到的sqlservr.exe占用的内存就仅仅包含Buffer Pool中非Data Cache部分和MemToLeave部分,而不包含Data Cache部分,因此看起来有可能造成sqlservr.exe只占用了几百兆内存而内存的使用是几十G。这时我们就需要在Perfmon.exe中查看SQL Server:Memory Manager\Total Server Memory计数器去找到SQL Server真实占用的内存。

总结

本文讲述了SQL Server对内存管理的基本原理和SQL Server对内存使用所分的部分,对于SQL Server性能调优来说,理解内存的使用是非常关键的一部分,很多IO问题都有可能是内存所引起的。

SQLSERVER镜像环境搭建详细操作步骤

. SQLSERVER2008R2镜像操作步骤关于环境设置everyone;和1.MSSqllServer安装路径下的MSSQLMSSSQL下的DATA和BACKUP文件权限设置为C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\目录:】【添加】【右键】步骤:在文件夹上点→【属性】→【安全】→【编辑】→→【高级】→【立即查找】→【EVERYONE→【确定】,选中EVERYONE设置权限→【完全控制】→【确定】; 2.修改MachineKeys文件夹权限: c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\的权限为everyone;】步骤:在文件夹上点【右键】→【属性】→【EVERYONE【立即查找】→【高级】→→【安全】→【编辑】→【添加】EVERYONE 设置权限→【完全控制】→【确定】;→【确定】,选中); TRUE(设置数据库的”外围应用配置器”的RemoteDaceEnabled 为主机和备机都要修改,步骤一样3. 】→在连接到服务】→【SQL Server ManagementStudio步骤:打开【所有程序】→【Microsoft SQL Server 2008 R2Microsoft SQL Server 其他保持默认,然后点击连接;IP,输入设置的密码,器对话框→服务器名称下拉框输入本机的对象资源管理中选中根节点,点【右键】→【方面】→【常规】在方面下拉框中选择【外ManagementStudio围应用配置器】选中【RemoteDacEnabled; →【确定】】修改值为:TRUE 】→【属性】→【高TCP/IPv4修改NetBIOS设置:点击【网络和共享中心】→【本地连接】→【属性】→【4. 】→【确定】;上的NetBIOS(N)WINS】→【NetBIOS设置】修改为:【启动TCP/IP级】→【 5.更改主备计算机名称;步骤:选中【计算机】点【右键】→【属性】→【高级系统设置】→【计算机名】→【更改】,在计算机名的输入框中输入计算机名称,建议主机用:PRIMARY 备机用:MIRROR ;→【确定】; 与主机名称对应。修改文件:C:\WINDOWS\SYSTEM32\DRIVERS\etc\目录下的hosts6.设置指定IP例如:PRIMARY 172.168.2.101 主机IP是:计算机名称:计算机名称:MIRRORIP备机是:172.168.2.102 文件,修改文件最后两行内容为:用记事本打开hosts172.168.2.101 PRIMARY 可编辑范本 . 172.168.2.102 MIRROR C:\Program 建立一个共享文件夹,作为数据库备份的映射路径。建议在备机数据库存放数据的文件根目录下(7. )建共享文件夹. Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\新建文件夹:【右键】→【新建】→【文件夹】→【重命名】→命名为:backup;步骤:1.设置共享:【右键】→【属性】→【共享】→【高级共享】→选中【共享此文件夹】选项→【权限】2.EVERYONE】→【完全控制】→【确定】→选中【 镜像步骤打开SQL Server ManagementStudio】→在连接到服务器对1.打开【所有程序】→【SQL Server ManagementStudioMicrosoft SQL Server 2008 R2】→【话框→服务器名称下拉框输入本机IP,输入设置的密码,其他保持默认,然后点击连接;\backup\;:2.在数据盘根目录中新建一个文件夹用于存放证书。e 主机数据库备份→【任务】→【备份】直接上【右键】 1.先完整备份数据库:在数据库根节下的数据库HT_MANAGE_DB点【确定】→

sqlserver管理工具快捷键

我的集合 本文档将按"原样"提供。文档中所陈述的信息和观点,包括 URL 和其他 Internet 网站参考,如有更改,恕不另行通知。本文档不向您提供有关任何 Microsoft 产品或产品名称中的任何知识产权的合法权利。您可以在内部复制并使用本文档以进行参考。您可以在内部修改本文档以进行参考。? 2016 Microsoft. 版权所有。保留所有权利。使用条款 (https://https://www.wendangku.net/doc/ae11124473.html,/cc300389.aspx) | 商标 (https://www.wendangku.net/doc/ae11124473.html,/library/toolbar/3.0/trademarks/en-us.mspx) Table Of Contents 第 1 章 SQL Server Management Studio 键盘快捷键 第 1 章 SQL Server Management Studio 键盘快捷键 SQL Server 2008 SQL Server Management Studio 为用户提供了两种键盘方案。默认情况下使用的是“标准”方案,即使用基于MicrosoftVisual Studio 的键盘快捷键。另一种是 SQL Server 2000 方案,此方案与 SQL Server 2000 中的工具极为相似,尤其是查询分析器中的键盘快捷键。在一些情况下,SQL Server Management Studio 不能提供查询分析器中的键盘快捷键。若要更改键盘方案或添加其他键盘快捷键,请在“工具”菜单中单击“选项”。在“环境”下的“键盘”页中选择所需的键盘方案。

注意 菜单激活键盘快捷键

超详细图解sql2005安装全过程

其实不晓得 其实不晓得 主页博客相册个人档案好友 查看文章 超详细图解sql2005安装全过程 2009年11月27日 星期五 22:35 之前安装S Q L2005老是安装不上,在选择数据库时为灰色,不能进行选择,经查找原因是:操作系统和数据库版本不兼容,我用的是W I Nxp 专业版s p 2,而数据库的版本是:En t e r p r is e Ed it io n 1 ,所以导致这个问题的出现,现在网上找了一份有关S QL2005的安装图解,供大家参考,也给自己做一个备份! 安装可能出现的问题参考: 1》安装VS 2008后再安装S Q L2005无组件和S Q L 服务的解决办法 2》s q l2005开发版:选择的功能中没有任何功能可以安装或升级问题的终级解决方法 安装准备: 1、S Q L S e r v e r 2005 的各版本之间选择 大多数企业都在三个 S Q L S e r v e r 版本之间选择:S Q L S e r v e r 2005 En t e r p r is e Ed it io n 、S Q L S e r v e r 2005 S t a n d a r d Ed it io n 和 S Q L S e r v e r 2005 W o r kg r o u p Ed it io n 。大多数企业选择这些版本是因为只有 En t e r p r is e Ed it io n 、S t a n d a r d Ed it io n 和 W o r kg r o u p Ed it io n 可以在生产服务器环境中安装和使用。 除 En t e r p r is e Ed it io n 、S t a n d a r d Ed it io n 和 W o r kg r o u p Ed it io n 外,S QL S e r v e r 2005 还包括 S QL S e r v e r 2005D e v e lo p e r Ed it io n 和 S QL S e r v e r 2005 Exp r e s s Ed it io n 。以下段落分别说明其中的每个版本,并建议应在何时使用哪个版本。 2、软、硬件要求 2、1 网络软件要求: 独立的命名实例和默认实例支持以下网络协议:S h a r e d M e mo r y 、N a me d P ip e s 、T CP /I P 、VI A 2、2 I n t e r n e t 要求 安装程序支持软件 S Q L S e r v e r 安装程序需要 M ic r o s o f t W in d o w s I n s t a lle r 3.1 或更高版本以及 M ic r o s o f t 数据访问组件 (M DA C) 2.8S P 1 或更高版本。您可以从此 M ic r o s o f t 网站下载 M D A C 2.8 S P 1。 S Q L S e r v e r 安装程序安装该产品所需的以下软件组件: M ic r o s o f t W in d o ws .NET F r a me w o r k 2.0 M ic r o s o f t S QL S e r v e r 本机客户端 M ic r o s o f t S QL S e r v e r 安装程序支持文件 硬件要求 S Q L S ERVER 2005对硬件的要求相对于2000来讲提高一个档次了,记得2000的企业版内存推荐才128M ,最低64M 就够了。 操作系统与2005 此表显示对于每种 32 位版本的 S Q L S e r v e r 2005,操作系统是否可以运行其服务器软件。 百度空间 | 百度首页 | 登录

SQLServer企业管理器

SQL Server 企业管理器 SQL Server 企业管理器是用来对本地或远程服务器进行管理操作的服务器管理工具,它提供了一个遵从 MMC 标准的用户界面。 企业管理器的功能 ●定义 SQL Server 实例组。 ●将个别服务器注册到组中。 ●为每个已注册的服务器配置所有 SQL Server 选项。 ●在每个已注册的服务器中创建并管理所有 SQL Server 数据库、对象、登录、用户和权限。 ●在每个已注册的服务器上定义并执行所有 SQL Server 管理任务。 ●通过唤醒调用 SQL 查询分析器,交互地设计并测试 SQL 语句、批处理和脚本。 ●唤醒调用为 SQL Server 定义的各种向导。 1.2.1企业管理器界面及基本操作 在“开始”菜单的“程序”级联菜单中,选择Microsoft SQL Server程序组中的“企业管理器”选项,即可启动SQL企业管理器界面如图1-14所示。 图1-14企业管理器的操作界面

整个结构的最上层为Microsoft SQL Server,表示所有的SQL Server,下面划分为组,称为Server 组,每组可以包含多台计算机。但对于新安装的SQL Server而言,只包含一个Server组和一个SQL Server 服务器(其中的DYC(Windows NT))。这里我们可以通过在“SQL Server组”上面右击鼠标,在打开的快捷菜单上,选择“新建SQL Server组”来添加一个SQL Server组,也可以选择“新建SQL Server 注册”来向组中添加一个SQL Server服务器。 下面我们通过利用企业管理器查看数据库等基本对象,说明企业管理器的基本操作。 1.查看数据库 展开选择的服务器的“数据库”选项,可看到系统提供的数据库和用户自己建立的数据库.新安装SQL Server 后,默认有下面几个内置的数据库: ·master数据库该数据库记录了SQL Server系统的所有系统级别信息.它记录所有的登陆帐户和系统配置设置。 ·tempdb数据库该数据库保存所有的临时表和临时存储过程。 ·model数据库该数据库用作在系统上创建的所有数据库的模板。 ·msdb数据库该数据库供SQL Server代理程序调度警报和作业以及记录操作员时使用。 ·Pubs和Northwind数据库这是SQL Server提供的两个范例数据库。 利用企业管理器可以查看数据库的内容。具体步骤如下: 在左侧窗口中,选择要查看的数据库,并在上面右击鼠标,将鼠标指向“查看”,进而选择“任务板”。右侧窗口中即可显示出该数据库的“常规”内容,如图1-15所示。 图1-15数据库内容 2.查看表

基于SQLSERVER的图书管理系统

毕业设计(论文)说明书题目:图书管理系统

毕业设计(论文)外文摘要

目录

1 总论 (2) 1.1开发工具BORLAND DELPHI的简介 (2) 1.2数据库管理系统MICIRSOFT SQL SERVER 的简介 (5) 2图书管理系统的开发设计 (7) 2.1系统设计 (7) 2.1.1系统需求分析 (7) 2.1.2数据流图 (7) 2.1.3数据字典 (9) 2.1.4数据库的ER图 (17) 2.1.5系统结构图的设计 (17) 3主要用户界面 (19) 3.1主界面 (19) 3.2借书界面 (19) 3.3还书界面 (20) 3.4 图书查询界面……………………….………………………………………20.. 3.5读者信息查询界面 (21) 3.6统计报表的打印界面 (22) 4本系统主要代码 (23) 5设计过程中遇到的困难及解决方案 (33) 结论 (34) 致 (35) 参考文献 (36)

1总论 1.1 开发工具Borland Delphi的简介 Delphi是一种优秀的可视化软件开发工具,它以其简洁明快的编程语言、功能强大的组件和灵活方便的编程环境在竞争激烈的市场越来越得青睐。它的功能可以与庞大的VisualC++媲美;它易学易用,如同VB。因而,被称作是“第四代程程语言”。DELPHI作为全球公认的快速应用程序开发工具(RAD)的领导地位。Delphi以其友好的可视化开发环境、完全编译执行的高效性而著称。 Delphi遵循业界标准来开发分布式多级应用系统,所以他能够使应用系统使用于大部分的异构环境。Delphi同时支持COM和CORBA接口的最新功能,对于想在对象结构标准的纷争中立于不败之地的IT部门而言,它是最具吸引力的选择。Delphi 确定了高效率和快速开发高性能的客户端/服务器(Client/Server)及Enterprise和Internet上的多层体系结构应用的标准,其快速应用开发、可伸缩的多层数据库开发、真正的面向对象的可重用性及本地代码优化编译技术,为企业围的Client/Server开发及Internet应用创造了条件。 Delphi拥有及其强大的数据库操作能力,包括支持对Windows NT Services的开发,面支持大型数据库,如Oracle,新的灵活的Grid控件,一步到位的COM和CORBA的控件开发等。 1数据分析 正确的数据分析,在业务决策上是相当的重要的。当大量的数据库

SQLSERVERProfiler工具

SQL Server Profiler工具 一、SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: ?图形化监视SQL Server查询; ?在后台收集查询信息; ?分析性能; ?诊断像死锁之类的问题; ?调试T-SQL语句; ?模拟重放SQL Server活动; 也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler 跟踪。 1、Profiler跟踪 从开始=》所有程序=》Microsoft SQL Server 2008=》性能工具打开Profiler工具,也可以打开SQL Server Management Studio=》工具=》SQL Server Profiler。 然后选择文件=》新建=》跟踪打开一个连接窗口,选择将要跟踪的服务器实例然后连接。打开如下“跟踪属性”对话框。

如果有许多跟踪,可以提供一个跟踪名称来帮助在以后进行分类。不同的跟踪模板可帮助建立用于不同目的的跟踪。 打开跟踪属性窗口后,单击“事件选择”选项卡,为跟踪提供更详细的定义。

2、事件 一个事件表现SQL Server中执行的各种活动。这些活动可以简单地分类为事件类,游标事件,锁事件,存储过程事件和T-SQL事件是常见的事件类。 对于性能分析,主要对SQL Server上执行的各种活动的资源压力水平的事件感兴趣。资源压力主要包含如下内容: 1.SQL活动涉及哪一类的CPU使用? 2.使用了多少内存? 3.涉及多少I/0操作? 4.SQL活动执行了多长时间? 5.特定的查询执行的频率有多高? 6.查询面对哪类错误和警告?

MSSQL2005安装教程

去年暑假刚毕业的时候我去了电信实业工作,做了几个月的.NET开发,数据库用的就是SQL Server,不过是SQL Server 2000。说真的我讨厌做开发,那段经历也是我不愿去回想的,没有任何乐趣。SQL Server 2000我安装过好几次,SQL Server 2005我就安装过两次,两个版本的安装过程有很大不同。当然我在安装之前首先是参考了专家的教程。小站已经有网友跟我提过出一个SQL Server 2005安装教程。今天就分享一下安装的方法和过程,以图文的形式,一步一步详细讲解。 一、下载SQL Server 2005 首先当然是下载SQL Server 2005。不过这里要强调一点,安装前要搞清楚你安装SQL Server 2005的用途。如果是企业级的应用,当然要下载SQL Server 2005企业版。不用找来找去找了,本站有SQL Server 2005企业版下载。如果你是出于学习的目的在自己的电脑上安装,那就安装个SQL Server 2005开发版吧!XP系统不能安装企业版。 二、安装SQL Server 2005 先跟大家说明一下,我是在我的虚拟机Windows Server 2003上安装的。打开文件目录下的setup.exe,开始安装!

由于安装的步骤比较多,我就不一一上图了。因为有些就下一步下一步好了,关键的安装步骤我会一一指出和详解。安装的过程中它会自动安装一些必要的组件,如.NET framework 2.0,反正点下一步好了。到下图,这一步是系统配置检查: 检查完成之后,我们发现有一项“最低硬件要求”出现警告!其它都符合。很多人会说,你在虚拟机里安装,内存太小了吧?不好意思不是这样的,我笔记本加了2G内存共3G(笔记本加内存其实很简单),我分了虚拟机1G,内存符合最低要求的。关于这个问题,我听专家的解释是:32位的系统安装的时候就会这么一个警告。你可以不管它,直接点下一步好了,经测试没有影响。 我们看到SQL Server 2005的CD-KEY已经自动填入了,如下图:

SQLServer权限管理

在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对给定的数据库只有被授权的操作权限。 数据库用户一般可分为用户组,任一数据库在建立后即被赋予一个用户组public。 1、建立SQL服务器用户名(登录帐号) 作为一个用户,为了使用SQL Server,他必须在SQL Server上有一个SQL服务器用户名(登录帐号)。这个帐号是系统管理员通过sp_addlogin来增加的。 sp_addlogin 登录名,口令,库名,语言,全名 例:建立用户a, 口令为123456(最低六位),全名为aaa 1> sp_addlogin a,test,null,null,aaa 2> go 3> select * from syslogins 4> go 2、增加数据库用户名 同样,为了使用SQL Server上的数据库,他必须在数据库中有一个用户名,这个用户名是数据库所有者通过sp_adduser来增加的。数据库用户名不必和用户帐户一样,而且在不同的数据库中用户名可以不同。多个用户可以有相同的SQL Server帐户。同样,多个SQL Server 帐户可以有相同的数据库名。 sp_adduser 登录名,别名,组名 登录名为用户的SQL服务器登录名;别名为用户在数据库中的用户名;组名为用户所属的数据库用户组。 例:用户a增加为test的用户,别名为a1,属于用户组china 1>sp_addgroup china 2>go 1>sp_adduser a,a1,china 2>go 1> sp_helpuser 2> go *例:删除别名a1,用户组china,登录名a 1> use test 2> go 3> sp_dropuser a1 4> go 5> sp_helpuser 6> go 1>sp_dropgroup china 2>go

SQLServer数据库安全配置规范

SQLServer数据库安全配置规范

1.概述 1.1. 目的 本规范明确了SQL Server数据库安全配置方面的基本要求。为了提高SQL Server数据库的安全性而提出的。 1.2. 范围 本规范适用于XXXX使用的SQL Server数据库版本。

2.配置标准 2.1. 补丁 2.1.1.安装数据库最新补丁 【目的和操作】连接微软SQLServer网站,获得各个最新的补丁包和补丁集合。 2.2. 网络配置 2.2.1.隐藏服务器 【目的和操作】在企业管理器中选择数据库服务器的属性,网络配置,TCP/IP 属性,选中其中的“隐藏服务器”选项。 该操作可以通过设置IPSE策略过滤UDP1434端口完成。 2.2.2.去掉不必要的协议 【目的和操作】默认情况下,SQLSERVER同时安装TCP/IP和管道,在企业管理器中选择数据库服务器的属性,网络配置,删除管道。 【影响】首先确认用户或者应用程序不使用管道来通讯。只使用Windows进行身份验证并需要远程维护必须使用管道。 2.2. 3.改变默认通信端口 【目的和操作】在企业管理器中选择数据库服务器的属性,网络配置,TCP/IP 属性,默认情况下是TCP 1433端口,请修改该端口为新的端口。 再使用Windows的IPSEC安全策略,禁止非允许的IP地址访问此端口。 【影响】影响使用默认端口的远程访问,要求用户先确认不影响其他操作。

2.2.4.使用通讯协议加密 【目的和操作】使用SSL加密协议。 【影响】影响使用默认端口的远程访问,要求用户先确认不影响其他操作。2.2.5.网络连接访问控制 【目的】在操作系统或者相应的网络设备上设置网络访问控制 【具体配置】 1、禁止非数据库应用系统IP连接UDP1434、TCP1433(或者修改后的通 讯端口)的连接 2、禁止非数据库应用系统IP连接TCP445/139端口的连接。 【影响】根据需要选择。会影响普通的数据库连接。 2.3. 审核设置 2.3.1.设置审核级别 【目的】设置SQL Server的审核选项。 【具体配置】 展开一个服务器组。右击一个服务器,再单击"属性"。在"安全性"选项卡 的"身份验证"下,在"审核级别"中选择在 SQL Server 错误日志中记录的用 户访问 Microsoft? SQL Server?的级别:"全部"表示审核成功的和失败的 登录尝试。 2.3.2.设置日志目录权限 【目的】限制日志目录的权限,防止对日志目录的非授权访问。 【具体配置】 日志通常保留在:SQL Server安装目录\MSSQL\LOG\ 设置目录权限为:administrator, system(完全控制),如果有服务账号, 也加上服务账号的权限。 【影响】 如果SQL Server服务不是以localsystem而是以其他账号运行,那么也设置 该账号有完全控制的权限

SQLServer企业管理器和查询分析器

SQL Server企业管理器和查询分析器 如果主数据库发生故障,那么微软的SQL Server可能会怦然倒下。看看如何面对这种事件,了解如何用企业管理器和查询分析器修复主数据库。 作为一名微软SQL Server的管理员,您必须知道如何修复一个崩溃的主数据库。主数据库保存有您的登录信息,以及最重要的、指向您所有数据库的指针。如果没有主数据库,您就无法成功地启动SQL Server。在本文里,我将向您介绍在发生崩溃的情况下如何修复主数据库,并告诉您如何重建主数据库,如果有必要的话。 制定预案 制定一个应对崩溃和/或主数据库故障的预案十分重要。这将有助于您在碰到灾难的情况下按照既定的方法进行处理,而不是迫于压力仓促作出反应。我碰到过很多很容易就陷入惊慌的状况,但是由于保持冷静并按照正确的方法来处理问题,我最后成功地度过了所有的困境。 如何判断主数据库已经崩溃 在正式开始讨论碰到系统故障如何修复和重建的主数据库之前,我们需要先了解如何辨别它已经崩溃了。要说明这一点,我会弄垮一个主数据库,告诉您主数据库崩溃会发生什么样的症状。 现在让我们假设您的公司碰到了电涌,造成SQL Server重启。在重新启动的时候,SQL Server却没有正常启动。如果查看错误日志(图A),您会看到主数据库崩溃或者丢失。既然您知道需要查看什么信息,那就让我们看看如何修复主数据库。 图A 修复您的主数据库

修复主数据库的第一步是使用“重建向导(Rebuild Wizard,Rebuildm.exe),它放在 \Program Files\Microsoft SQL Server\80\Tools\BINN目录下。现在就让我们来看看重建向导是如何工作的。 双击Rebuildm.exe启动图B所示的对话框: 图B 在这个对话框里,您可以指定数据库服务器的修复设置,以及原始安装的数据文件的 位置。要让这一过程更容易和更快,就要把x86目录从SQL的光盘上复制到硬盘上,并把指向改到本地的副本。一旦验证完了所有的信息,点击“重建(Rebuild)”。然后系统就会提示您确认操作,如图C所示: 图C 点击“确定(Yes)”。一旦重建过程完成,您会看到一条重建成功的消息。您现在就有了一个全新的主数据库,准备好修复主数据库了。 首先,打开命令行提示符,输入\Program Files\Microsoft SQL Server\MSSQL\BINN\目录下的sqlservr.exe –c –m命令,启动单用户模式下的SQL Server。结果如图D所示:

SQLServer数据库基准安全配置标准

MS SQL Server 数据库 基准安全配置标准 目录 1. 将SQL SERVER身份验证设置为仅限WINDOWS (2) 2. 安装最新的补丁更新程序 (2) 3. 优化服务 (2) 4. 限制SQL SERVER 只采用TCP/IP (3) 5. 帐户 (3) 5.1. 使用最低权限帐户运行SQL S ERVER (3) 52 为SA帐号设置强壮的口令 (3) 53 删除SQL来宾用户帐户 (5) 54 删除BUILTIN\A DMINISTRATORS 服务器登录 (5) 5.5. 不为公共角色授予权限 (5) 6. 文件和目录 (5) 6.1. 验证对SQL S ERVER安装目录的访问权限 (6) 6.2. 验证E VERYONE组是否不具有对SQL S ERVER文件的访问权限 (6) 63 保证安装日志文件的安全 (7) 7. SQL SERVER 数据库对象 (7) 7.1. 删除示例数据库 (7) 7.2. 保证存储过程的安全 (7) 7.3. 限制CMD E XEC对SYSADMIN角色的访问权限 (9) 8. 审核和日志 (11)

1.将SQL Server身份验证设置为仅限Windows 应当对SQL Server进行配置,使其支持仅限Win dows身份验证,因为这种验证方式有诸多优点。不必在网络上传送凭据;可避免在数据库连接字符串中嵌入用户名和密码;更易于进行安全管理,因为只需要与一个Windows安全模块而不是另外的SQL Server安全模块打交道;密码到期期间的登录安全性得到提高;最低限度的长度要求及帐户锁定策略。 2. 安装最新的补丁更新程序 包括最新的Windows操作系统以及SQL Server的Service Pack。 3. 优化服务 SQL服务安装程序运行期间将安装以下四个Windows服务: MSSQLSERVER(对于命名实例,则为MSSQL$InstanceNam?。此为SQL Server数据库引擎,是唯一的强制安装服务。 SQLSERVERAGENT (对于命名实例,则为SQLAgent$lnstanceName)。可 借助此支持服务制定命令执行计划及在出错时通知操作人员。 MSSQLServerADHelper。它可提供Active Directory集成服务,包括数据库实 例注册。 Microsoft Search。它可提供全文搜索能力。在任何情况下均须通过本地系统帐户 来运行此服务。 只有MSSQLSERVER数据库引擎是必备的。其余服务提供了附加功能,只在特定情况下才需要使用。如并非必需,请禁用这些服务。 注意:不应将SQL Server配置为以本地系统帐户或本地Administrators组的任何成员

Ecology 安装部署手册 Windows SQLServer V

Ecology8安装部署手册_Windows_SQLServer SUBMITTED BY WEAVER SOFTWARE

目录 1.服务器配置要求 (2) 2.系统安装和卸载 (2) 2.1. 安装前准备 (2) 2.2. 系统安装 (11) 2.3. 系统卸载 (18) 3.系统备份 (19) 3.1. 备份程序文件 (19) 3.2. 备份文档、图片文件 (19) 3.3. 备份数据库文件 (19) 4.系统升级 (27) 4.1. 停止RESIN服务 (27) 4.2. 备份程序文件夹 (27) 4.3. 备份数据库文件夹 (27) 4.4. 使用系统升级文件包 (27) 4.5. 启动resin服务 (27) 4.6. 升级失败后,系统恢复的方法 (28) 5.系统重装 (28) 5.1. 拷贝备份的程序、文档图片文件夹 (28) 5.2. 安装resin服务 (28) 5.3. 修改配置文件 (29) 6.安装后相关调整 (29) 6.1. JDK的更换 (29) 6.2. 调整内存 (30) 6.3. 调整端口 (30) 6.4. 安装文件出现乱码的处理 (31)

1.系统配置要求 --------------------------------------服务器-------------------------------------------------- (64位操作系统):Windows Server 2003/2008/2012、Linux、SUN Solaris、IBM AIX 数据库:SQL Server 2005/2008/2012、Oracle 9i/10g/11g 最低配置:Xeon双核CPU 2.2GHz以上8G内存500G硬盘 建议配置:Xeon四核CPU*2 3.1GHz以上16G内存1T硬盘 ---------------------------------------客户端------------------------------------------------- 操作系统:Windows XP/Vista/7/8/10 浏览器:IE8/9/10/11、Chrome、Firefox、Safari 注意:操作系统要保证为简体中文操作系统,在特殊情况下如果为非简体中文操作系统,也要安装上简体中文语言包。 2.系统安装和卸载 2.1.安装前准备 在安装ecology前,需要先安装好数据库。 2.1.1.安装SQLServer(必须使用SQLServer2005及以上版本) (1)SQL Server 2005的安装光盘共有2张,先打开第一张,点“服务器组件、工具、联机丛书和示例)”

JAVA_连接sqlserver_学生成绩管理系统

《学生成绩管理系统》课程设计 实验报告 题目学生成绩管理系统 学院 专业 班级 同组成员 编写日期

一、课程设计目的 做这个小的学生成绩管理系统来加深对JAVA所学知识的巩固,以及学习JAVA与数据库的连接和JAVA的GUI图形界面。 二、需求分析 此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询学生基本资料,学生所学课程成绩,等功能。容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 三、系统模块设计 此系统可分为2个模块,教师管理模块和学生操作模块,期中教师又包括学生信息输入与学生成绩录入等;学生模块则包括学生成绩查询与学生信息录入查询操作等。

四、数据库 1、学生表: Field Type Null Key Comment ID Varchar(10) ——PRI 用户名(学号) Pwd Varchar(10) ————密码 Name Char(10) ———— Sex Char(10) ————性别 Class Char(10) ————班级 Collage Char(10) ————学院 2、教师表 Field Type Null Key Comment ID Varchar(10) ——PRI 用户名 Pwd Varchar(10) ————密码 3、成绩表 Field Type Null Key Comment Sid char(10) ——PRI 学号 计算机网络char(10) ————课程 Linux操作系统char(10) ————课程 计算机专业英语char(10) ————课程 计算机信息技术char(10) ————课程 Java程序设计char(10) ————课程 数据库应用实训char(10) ————课程 高等数学char(10) ————课程 XML char(10) ————课程

SqlServer数据库安全加固

SQLServer数据库安全配置基线加固操作指 导书 佛山供电局信息中心 2014年4月

目录 1.1 SQLServer数据库安全基线要求 (3) 1.1.1 应对登录操作系统的用户进行身份标识和鉴别 (3) 1.1.2 禁止用Administrator或System用户启动数据库 (4) 1.1.3 密码策略 (4) 1.1.4 用户名的唯一性 (5) 1.1.5 应启用访问控制功能 (5) 1.1.6 管理用户的角色分配权限 (6) 1.1.7 实现操作系统和数据库系统特权用户的权限 (6) 1.1.8 删除多余账户 (6) 1.1.9 审计功能 (7) 1.1.10 审计记录要求 (7) 1.1.11 安装最新补丁 (8) 1.1.12 删除默认安装数据库 (8) 1.1.13 删除不必要的存储过程 (9)

1.1 SQLServer数据库安全基线要求 1.1.1 应对登录操作系统的用户进行身份标识和鉴别 控制台根目录下的SQL Server组/数据库,右建打开数据库属性, 选择安全性,将安全性中的审计级别调整为“全部”,身份验证调整 为“SQL Server 和Windows” SQL Server 2000 SQL Server 2005

1.1.2 禁止用Administrator或System用户启动数据库 1.1.3 密码策略

1.1.4 用户名的唯一性 户名。 为每个管理员添加专门的用户名,建议实名制。 进入“SQLServer管理器->安全性->登陆名(右键)->新建用户名” 进行添加数据库用户名。 1.1.5 应启用访问控制功能

SQLServer数据库使用心得

SQLServer数据库使用心得 摘要:ASP+Access的组合方式不能满足现有编程需要,在使用ASP+SQLServer的组合方式中经常遇到的一些问题 关键词:ASPAccess数据库SQLServer数据库 我刚开始学习编写ASP代码时,一般都使用Access数据库,因为它操作简便并且功能强大。ASP+Access的组合方式使用方便,代码执行速度快,很适合做一些中小型网站、聊天室、论坛、网上商城等中小型程序。 但是,从数据安全和数据存贮量的角度考虑,ASP+Access的组合方式无疑存在着很大的弊端:一是数据库可以被入侵者使用网络工具下载;二是Access数据库的存储量有限,当数据记录过多时,会导致相应的程序代码出错或者没有响应。 基于上述原因,我开始使用SQLServer数据库,在实际应用中遇到了很多问题,我通过查找参考书和网络论坛解决了其中的一部分,现总结如下几点,与大家共同探讨一下。 …sa?登录失败。原因:未与信任SQLServer连接相关联 当你确认自己的SQLServer安装使用正常,数据库连接代码没有错误,数据库也附加成功,出现上述错误时,请检查SQLServer属性中安全性配置的身份验证方式,应该使用SQLServer和Windows混合认证方式,如果使用的是仅Windows认证方式,就会显示该项错误提示。 刚开始使用SQLServer数据库的时候,由于不了解认证方式的区别,我以为是自己的SQLServer数据库安装有问题,重装了几次,费时费力还没有解决问题,幸好网络上高手众多,才发现原来是如此简单的一个认证方式的原因,令人汗颜。 2ACCESS转化成SQLServer2000需要注意的几个问题 2.1转换的方法 (1)打开SQLServer企业管理器“控制台”下“工具”中的“数据转换服务”中的“数据导入”;(2)库,然后确定。(3)选择目的,选择用于SQLServer的microsoftOLEDB 提供程序;服务器选择,如果是本机,默认(local);认证方式两种选择均可;数据库可

数据库课程设计《SQLServer图书馆管理系统》实例讲解

数据库系统概论课程设计 图书馆数据库管理系统 小组成员: *** *** ***

QQ: 目录 序言............................................................................. 错误!未定义书签。 一、图书馆管理系统E-R 图 .................................. 错误!未定义书签。 二、图书馆管理系统功能实现示意图..................... 错误!未定义书签。 三、图书馆管理系统功能图例................................. 错误!未定义书签。 3.1 读者借阅图书................................................ 错误!未定义书签。 3.2 读者归还图书................................................ 错误!未定义书签。 3.3 读者续借图书................................................ 错误!未定义书签。 3.4 读者查询借阅图书情况................................ 错误!未定义书签。 3.5 读者检索图书信息........................................ 错误!未定义书签。 四、图书馆管理系统附加功能................................. 错误!未定义书签。 4.1 往学生表中插入列"系部",其值等于学号中代表系部的位的值, 再插入列"专业号",其值等于学号中代表专业的位的值错误! 未定义书签。 4.2 查询每个学生对书本的借阅数量................ 错误!未定义书签。 4.3 查询各个专业的学生借阅书本的数量........ 错误!未定义书签。 五、图书馆管理系统数据库、数据表源代码......... 错误!未定义书签。 5.1 图书馆管理系统"数据库"源代码 ................ 错误!未定义书签。 5.2 图书馆管理系统"数据表"源代码 ................ 错误!未定义书签。 六、图书馆管理系统存储过程源代码..................... 错误!未定义书签。 6.1 读者借阅图书存储过程................................ 错误!未定义书签。 6.2 读者还书存储过程........................................ 错误!未定义书签。 6.3读者续借图书存储过程................................. 错误!未定义书签。 6.4 读者查询借阅图书情况存储过程................ 错误!未定义书签。 6.5 读者检索的图书信息存储过程.................... 错误!未定义书签。 I I

windows7装sql2005的方法-新建SQL server方式的用户名和密码

windows7装sql2005的方法-新建SQL server方式的用户名和密码 一、配置IIS 到控制面板,打开IIS Features,点左边的加号,打开详细信息,我们勾上以下组件: 1: Web Managerment Tools\IIS 6 Management Compatibility\IIS6 WMI Compatibility 2: Web Managerment Tools\IIS 6 Management Compatibility\IIS6 Metabase and IIS 6 Configuration Compatibility 3: World Wide Web Services\Application Development Features\https://www.wendangku.net/doc/ae11124473.html, 4: World Wide Web Services\Common Http Features\Http Redirection 5: World Wide Web Services\Security\Windows Authentication 二、安装标准版SQL Server 2005 按照提示安装即可 三、安装SQL Server 2005 SP3 最后一步设置系统帐号权限,需要先到任务管理器中关闭sqlserver 进程,然后到打开dos窗口之前的一步,又需要手动启动sqlserver服务。 四、启用SQL Server Browser 服务 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。 打开Windows 防火墙,请单击“开始”,再单击“运行”,键入firewall.cpl,然后单击“确定”。 五、在Windows 防火墙中为SQL Server 2005 创建例外 若要在Windows 防火墙中为SQL Server 2005 创建例外,请执行以下步骤: 六、在Windows 防火墙中为SQL Server Browser 服务创建例外 若要在Windows 防火墙中为SQL Server Browser 服务创建例外,请执行以下步骤: 1.在Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。 2.在“添加程序”窗口中,单击“浏览”。 3.单击C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。 七、配置SQLServer2005 远程连接 第一步:SQL Server Configuration Manager -> SQL Server 2005 Services 将SQL Server Browser 设置为running, 如果没有Enable的话,右键Properties -> Service -> StartMode = Auotomatic 注意,同时必须打开SQL Server Browser 服务

相关文档
相关文档 最新文档