首页 > 范文大全 > 正文

SQL Server数据库运用及其性能优化分析

开篇:润墨网以专业的文秘视角,为您筛选了一篇SQL Server数据库运用及其性能优化分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:sql server是一种关系型数据库管理系统,是由微软公司出品的软件。SQL Server数据库在运行几年后,由于需要处理的数据变多,其性能和执行效率会逐渐降低。通过探讨数据库运用技巧及其性能优化分析,使得SQL Server数据库能够更好更有效地运行。

关键词:SQL Server;数据库;性能优化;运行状况

中图分类号:TP391 文献标识码:A 文章编号:1672-7800(2012)003-0166-03

作者简介:冯艳(1974-),女,辽宁凌海人,开滦国际物流有限责任公司计算机工程师,研究方向为计算机应用。

1 SQL Server数据库的特性和设计维护

SQL Server是一种关系数据库管理系统,它采用了一套集成的管理工具以及相应的应用编程接口,这样能够促进SQL Server的可操作性、可管理性,还能够更好地支持大型数据库配置。SQL Server通过更加安全和秘密的政策加密措施,增强的安全模式确保企业公司能够向和工作人员、合作伙伴提供可信可靠的数据库应用系统。SQL Server在支持范围上的优越性表现在支持64位系统,能够加强表格分区和复制能力。

如果设备条件允许,应当将数据库中的数据文件和日志文件分离存储到不同的硬盘上,同时还需要分离TempDB数据库,将其单独存放在一个硬盘上。这样有利于提高磁盘的I/O并行度。在SQL Server的维护方面,SQL Server2000给用户提供了很棒的优化工具――数据库维护计划。这个功能能够根据工作人员的设定部分自主对数据库进行优化,一定程度上降低管理人员的工作量。

2 分析SQL Server局域网数据库实例

这个例子主要是表述说明SQL Server 2005如何自局域网中进行共享数据库,也就是SQL Server 2005如何利用1433端口打开并执行远程连接。首先我们得打开SQL Server 2005的1433端口,先使用配置工具,检查有没有启动TCP/IP通过查看属性分页菜单里面的IP地址,将IP1和IP2中得tcp端口都设为1433,将选项“已启用"设为“是”,然后配置远程连接的TCP/IP属性。对于SQL Server的应用配置器,应当启用远程连接属性当中的TCP/IP以及named pipes选项。

2.1 开启SQL Server远程连接的方法

实用配置工具,即SQL Server的应用配置器,通过服务和连接的应用配置器,打开节点下的数据库引擎(Database Engine),然后选中远程连接,再选中“同时使用CP/IP和named pipes”选项,确认无误后,将SQL Server 重启之后就可以正常使用了。

2.2 登录具体设置

再配置好应用配置器后,利用Windows命令进

入到管理器里,在对象资源管理器中点击显示数据服务器属性,找到安全性(Security)一项,将“SQL Server and Windows Authentication”一同选取。

2.3 用户名密码具体设置

同上一步骤,进入到Manage管理器,对Windows Authentication里面New Query属性进行设置,比如设置一个用户名为abc,密码为def的账号,在下次登录的时候,就可以使用这个用户进入SQL Server方式,直接登录SQL Server 2005数据库。

2.4 输入连接字符串进入数据库

在完成了以上3步之后,就可以输入连接字符串进入SQL Server 2005数据库(server=.\\sqlexpress;uid=abc;psw=def;database=master)。

3 SQL Server数据库常见错误分析

在远程连接SQL Server 数据库中,最经常出现几种错误:比如SQL Server 不存在或访问被拒绝,这类型的错误原因是最复杂的,有多种可能性,比如SQL Server的名称输入错误,也可能是所使用服务器或者客户端的网络配置有误,还可能是IP地址拼写错误。

要解决这种问题,首先需要对网络物理连接进行检测,如果ping出现失败,则说明网络物理连接是存在问题的,这种情况下需要从硬件设备入手,检查网卡网线是否插好、路由器是否正常工作等等,要特别考虑有没有可能是客户端安装的防火墙阻碍了对ping操作的响应。如果ping是正常的,但是ping出现异常,说明服务器的名称解析有问题,这种时候就需要检查DNS服务是否正常。在检查了物理网络连接后,需要对服务器端的网络配置进行检查,看其是否开启了TCP\/IP协议,是否启用了命名管道等等。在确认服务器端网络配置正常之后,就需对客户端的网络配置进行检查,可以同服务器端检查一样使用SQL Server的自带工具来实行检测。如果当SQL Server使用了“仅Windows”的身份验证方式,用户新建账号时可以会遇到无法连接数据库的问题,这时候用户就需要使用“Windows 身份验证”登录服务器,然后修改SQL Server的身份验证属性,再重新启动SQL Server数据库服务。如果在局域网内,用户遇到连接超时的问题,用户可以修改客户端连接超时的设置,这样就能在一定程度上避免企业内出现连接超时的状况。

4 SQL Server数据库的优化分析

4.1 数据库的逻辑设计

一个优秀合理的数据库需要考虑到表的逻辑设计、数据库的设计、表和表之间的相互关系,只有解决了这个关系数据库管理系统的核心问题,才能推进数据库的和应用程序的全面优化。在标准化的数据库逻辑设计中,我们可以使用较多的有关联关系的窄表来代替有着很多列的长数据表。

使用标准化的窄表可以加快排序和索引的建立,让数据库的操作节约大量的时间,而且能够实现多簇的索引,更窄更紧密的索引,优势是显而易见。而且这样可以减少每个表中的索引,能够提升SQL Server中数据操作的速度,尤其是在数据量大的情况下,减少了空值和空余值的占用,对数据库系统的性能提高有很大的好处。

在保证其优势的情况下我们也要考虑到实现数据库的标准化,随着表数据的增加,以及表之间链接的复杂度增加,会影响到服务器的整体性能,如何找到一个度,综合两者是非常值得重视的问题。

4.2 索引的设计

对于一个数据库,能否有效地利用索引是影响SQL Server性能的重要因素,SQL Server是一种基于代价的数据库系统模型,这种系统在对已经提交的每一个关于表的查询,来做出抉择用哪个索引后者是否需要使用索引。能够提高索引利用率的一个具体方法就是要尽量避免对全表进行扫描,假如合理的索引机制建立了,优化机制就能够通过索引来加速数据库的操作。同时应当注意的是,索引并不是完全有利无害的,索引的增加、删除、修改操作都会增加数据库的工作量,因此需要在合适的地方适当的增加索引,还需要删除不适用不合理的索引,这些都能优化SQL Server数据库管理系统。只有正确科学地分析了各种查询的可能和预测,得出了合理的索引设计,将索引设计和程序设计有机结合起来,才能够计算出最适合的优化设计方案。

聚簇索引是对磁盘上的实际数据进行新一轮的组织,按照规定的某一列或者其中的多列值排序。聚簇索引的索引页面指针是直接指向数据页面的,这样的方式使得它的查询速率比非聚簇索引查找数据要来得快。一张表只可以对应一个聚簇索引,而且如果建立聚簇索引至少需要占据该表120%的附属空间,用来存储这个表的备份以及索引中间页。在建立聚簇索引的的时候,应当注意大多数的表都应该建立聚簇索引或者通过采用分区的方法来减小对表尾页的需求。在聚簇索引的条件下,在某些具体范围检查内时,如果找到了其范围内第一个键值的行,就不用进行进一步的查找搜索,这样能够减小扫描范围,大大地优化数据库性能,提升查询速率。在建立聚簇索引时,在会频繁发生插入操作的表上,不要建在存在单调上升值的列上,不然会常常产生封锁冲突。而且聚簇索引不能包括频繁修改的列,当值修改后,那些数据行就必须得移动至新的地方。

非聚簇索引是在SQL Server缺省的情形下建立的索引,相对于聚簇索引来说,非聚簇索引并不需要重新组织表中的信息数据,而且对于每一行所存储的索引列值使用一个指针来指向数据所在页面。用另一句话解释就是,非聚簇索引在索引结构和数据本身之间存在着的一个额外级。如果一个表不使用聚簇索引时,能够使用250个非聚簇索引,每个非聚簇索引会提供访问数据信息的不同排序。在建立非聚簇索引的时候,需要考虑到索引将会占用多少空间,要权衡索引所影响的查询速度和修改速度的协调关系,索引键怎么样扫描效果会更好等等问题。对于频繁更新修改的表来说,非聚簇索引会比聚簇索引和没有索引的情况更增加数据库处理的复杂度,非聚簇索引的运用是需要很谨慎的,经常引用在某列常用于集合函数,某列常用于于join、order by、group by,搜索出的数据信息不超过这个表数据总量的两成。

不合适的索引会严重的影响SQL Server的性能,不仅于事无补,还将对系统的运行产生反作用。随着管理系统的不断运行不断更新,数据不断在变化,当数据的改变到了特定程度会让索引的使用受到限制,因此,用户需要不断地维护索引,来保证数据库系统的性能。

4.3 查询语句的设计优化

SQL Server数据库的优化主要方面就是对于查询语句的优化,通过对查询语句的分析,对其进行优化是SQL Server优化的最直接方法。比如分析哪个字句是否可以被优化,而且针对于这个被选择的字句来挑有作用的索引;比如在执行一个查询操作时,如果采用Where字句来对需要处理的行数进行限制,如果不是必要的话,应该避免在一个表中全部读取处理所有行的情况。而且允许SQL Server运行能够满足它目的函数限制结果集的大小是更有效果的,这样的方法能够减少网络I/O,还有利于多个用户发生相关并发时的系统性能。比如适当使用过渡表,有时候把表的一个子集进行排序然后创建一个临时表,能够避免多重排序来加快查询速度,某些方面还能起到够简化优化的工作。一个系统性能的调高和稳定,并不是单一因素所能够决定的。在SQL Server整个系统生命周期内都需要注意各个环节,采用合理科学的方法,来优化SQL Server数据库系统的性能。

参考文献:

\[1\] 谷震离.数据库设计对SQL Server数据库性能优化分析\[J\].计算机与网络,2007(8).

\[2\] 尹萍.SQL Server数据库性能优化\[J\].计算机应用与软件,2005(3).

\[3\] 赵爱芹,陈和平,熊健驰.关系数据库层次树查询机制浅析\[J\].计算机工程与设计,2006(18).

\[4\] 梁宾,胡天云.SQL Server中数据库表结构的动态修改\[J\].浙江万里学院学报,2002(1).

\[5\] 陈士川.SQL Server数据库应用系统性能优化技术\[J\].电脑知识与技术,2004(5).

\[6\] 曾玲,谭保华,吴坚.SQL Server应用系统性能优化的有效途径\[J\].计算机与数字工程,2005(9).

\[7\] 许平格.数据库管理系统中查询优化的设计和实现\[D\].杭州:浙江大学,2005.

\[8\] 胡江奕.基于SQL Server的数据库应用系统性能的优化\[J\].计算机工程与应用,2001(2).

\[9\] 苟凌怡,陈晓波,熊光楞.基于SQL Server 2000的关系数据与XML的集成\[J\].计算机工程与应用,2001(10).

Analysis on SQL Server Database Using and Its Performance Optimization

Abstract:the SQL Server is a relational database management system, is the product of our company by Microsoft software. SQL Server database in operation after a few years, because of the need to deal with data become more, its performance and the efficiency will be gradually reduced. This paper discusses the database with skill and its performance optimization analysis, this paper makes the SQL Server database can better and more effective operation.

Key Words: SQL Server; Database; Performance Optimization; Operation Condition