SQl
Server
配置管理器(简称为配置管理器)包含了SQL
Server
2008服务、SQL
Server
2008网络配置和SQL
Native
Client配置3个工具,供数据库管理人员做服务器启动停止与监控、服务器端支持的网络协议配置、用户访问SQLServer
的网络相关设置等工作。
一、配置服务
1、SQL
Server
配置附案例七可以通过开始菜单栏中的【SQL
Server
2配置管理器】打开,或者通过在命令提示下输入sqlservermanager.msc命令来打开。
2、首先打开SQL
Server
配置管理器,查看列出的与SQL
Server
2008相关的服务,选择服务名并右键单击弹出的快捷菜单中选择【属性】命令进行配置。在右键单击SQL
Server(MSSQLSERVER)弹出的【SQL
Server(MSSQLSERVER属性)】对话框。在【登录】选项卡中设置服务的登录身份,是使用本地系统账户还是指定的账户。
3、却换到【服务】选项卡可以设置SQLServer
(MSSQLSERVER)服务的启动模式,可以选项有“自动”、“手动”、“禁用”,用户可以根据需要进行更改。
二、网络配置
1、SQL
Server
2008能使用多种协议,包括Shared
Memory、Named
Pipes、TCP/IP和VIA.所有这些协议都有独立的服务器和客户端配置。通过SQL
Server网络配置可以为每一个服务器实例独立地设置网络配置。
2、在【SQL
Server配置管理器】窗口中,单击左侧的【SQL
Server
网络配置】节点,在窗口右侧显示出所有SQL
Server
服务器中所使用的协议,右键单击协议名称,在弹出的快捷菜单中选择【属性】菜单项,在弹出来的对话框中进行设置启用或者禁用操作,设置Shared
Memory协议的对话框,窗口右侧所列个协议的作用如下。
3、Shared
Memory协议:Shared
Memory协议仅用于本地连接,如果该协议被启用,任何本地客户都可以使用此协议连接服务器。如果不希望本地客户使用Shared
Shared
Memory协议,则可以禁用。
4、Name
Pipes协议:Name
Pipes协议主要用于Windows
2008以前版本的操作系统的本地连接以及远程连接。
5、TCP/IP协议:TCP/IP协议是通过本地或远程连接到SQL
Server的首选协议。使用TCP/IP协议时,SQL
SERVER在指定的TCP端口和IP地址侦听已响应它的请求。
6、VIA协议:如果同一计算机上安装有两个或多个SQL
Server实例,则VIA连接可能会不明确。VIA协议启用后,将尝试使用TCP/IP设置,并侦听端口0:1433。对于不允许配置端口的VIA驱动程序,两个SQL
Server实例均将侦听同一端口。
三、本地客户端协议配置
1、通过SQL
Native
Client(本地客户端协议)配置可以启用或禁用客户端应用程序使用的协议。查看客户端协议配置情况的方法是,在对话框中展开【SQL
Native
Client配置】节点,在进入的信息窗格中显示了协议的名称以及客户端尝试连接到服务器是尝试使用的协议的顺序,用户还可以查看协议是否以启用或以禁用并获得有关协议文件的详细信息。
2、在默认的情况下
Share
Memory协议总是首选的本地连接协议。要改变协议顺序可右键单击协议,在弹出来的快捷菜单中选择【顺序】命令,在弹出来的【客户协议属性】对话框中进行设置,从【启动的协议】列表中单击选择一个协议,然后通过右侧的两个按钮来调整协议向上或向下移动。
2. SQL Server存储过程的编写和优化措施
在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经过优化过的SP要比一个性能差的SP的效率甚至高几百倍。
详细内容:
1、开发人员如果用到其他库的Table或View,务必在当前库中建立View来实现跨如昌库操作,最好不要直接使用“databse.dbo.table_name”,因为sp_depends不能显示出该SP所使用的跨库table或view,不方便校验。
2、开发人员在提交SP前,必须已经使用set showplan on分析过查询计划,做过自身的查询优化检查。
3、高程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点:
(a)SQL的使用规范:
i.尽量避免大事务操作,慎用holdlock子句,提高系统并发能力。
ii.尽量避免反复访问同一张或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据到临时表中,然后再做连接。
iii.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。
iv.注意where字句写法,必须考虑语句顺序,应该根据索引顺序、范围大小来确定条件子句的前后顺序,尽可能的让字段顺序与索引顺序相一致,范围从大到小。
v.不要在where子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
vi.尽量使用exists代替select count(1)来判断是否存在记录,count函数只有在统计表中所有行数时使用,而且count(1)比count(*)更有效率。
vii.尽量使用“=”,不要使用“”。
viii.注意一些or子句和union子句之间的替换
ix.注意表之间连接的数据类型,避免不同类型数据之间的连接。
x.注意存储过程中参数和数据类型的关系。
xi.注意insert、update操作的数据量,防止与其他应用冲突。如果数据量超过200个数据页面(400k),那么系统将会进行锁升级,页级锁会升级成表级锁。
(b)索引的使用规范:
i.索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引。
ii.尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引
iii.避免对大表查询时进行table scan,必要时考虑新建索引。
iv.在使用索引字段作为条件时,如果该索引是联合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用。
v.要注意索引的维护,周期性重建索引,重新编译存储过程。
(c)tempdb的使用规范:
i.尽量避免使用distinct、order by、group by、having、join、cumpute,因为这些语句会加重tempdb的负担。
ii.避免频繁创建和删除临时改亩表,减少系统表资源的消耗。
iii.在新建临时表时,如果一次性插入数据量很大,那么可以使用select into代替create table,避免log,提高速度;如果数据量不大,为了缓和系统表的资源,建议先create table,然后insert。
iv.如果临时表的数据量较大,需要建立索引,那么应该将创建临时表和建立索引的过程放在单独一个子存储过程中,这样才能保证系统能够很好的使用到该核橡森临时表的索引。
v.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先truncate table,然后drop table,这样可以避免系统表的较长时间锁定。
vi.慎用大的临时表与其他大表的连接查询和修改,减低系统表负担,因为这种操作会在一条语句中多次使用tempdb的系统表。
(d)合理的算法使用:
根据上面已提到的SQL优化技术和ASE Tuning手册中的SQL优化内容,结合实际应用,采用多种算法进行比较,以获得消耗资源最少、效率最高的方法。具体可用ASE调优命令:set statistics io on, set statistics time on , set showplan on 等。
3. 如何提高SQL Server大数据条件下的查询速度
1.关于索引优化
建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里经常出现的字段建索引。如果在WHERE经常是几个字段一起出现而且是用AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面,重复率低的放前面。
SQL
Server提供了一种简化并自动维护数据库的工具。这个称之为数据库维护计划向导(Database
Maintenance
Plan
Wizard
,DMPW)的工具也包括了对索引的优化。如果你运行这个向导,你会看到关于数据库中关于索引的统计量,这些统计量作为日志工作并定时更新,这样就减轻了手工重建索引或者DBCC
INDEXDEFRAG所带来的工作量。如果你不想自动定期刷新索引统计量,你还可以在DMPW中选择重新组织数据和数据页,这将停止旧有索引并按特定的填充因子重建索引。
2.
改善硬件(双CPU,Raid
5,增加内存)
tempdb这个临时数据库,它对性能的影响较大。tempdb和其他数据库一样可以增大,可以缩小。当数据文件需要增长的时候,通常不能保持剩余部分的连续性。这时文件就会产生碎片,这种碎片会造成性能下降。这种碎片属于外来性碎片。要阻止在tempdb中产生外来性碎片,必须保证有足够的硬盘空间。一般将tempdb的容量放到平均使用容量。而你也应该允许tempdb自动增长,比如你有个一个超大的join操作,它建立了一个超过tempdb容量的时候,该查询将失败。你还要设置一个合理的单位增长量。因为如果你设得太小,将会产生许多外来性碎片,反而会占用更多资源。sqlserver调优最有效的做法之一,就是把争夺资源的操作独立出去。tempdb就是一个需要独立出去的部分而tempdb和其他系统库一样是公用的,是存取最可能频繁的库,所有处理临时表、子查询、GROUP
BY、排序、DISTINCT、连接等等。它最适合放到一个具有快速读写能力的设备上。比如RAID0卷或RAID0+1卷上。
查询语句一定要使用存储过程;
3、查询尽量使用TOP子句
4.将表按一定的约束分成子表,(如按分类)创建约束,在用Like
时,先用分类
and
like
,
应该可能解决问题.
而且效果立秆见影!(你要确定SQL会认识你建的分区视图).我一个表有上百万的记录(700兆),用分区视图后,查询速度基本跟10万行一样.
如果还是太慢,还可以考滤分布式分区视图!这总可以解决问题了吧!
关键在于你能否把大表按某种约束分解成子表.
4. Microsoft SQL Server 2008 曾经写过的存储过程, 突然查询间都变慢了.之前很快的.
随着数据的增长和表结构的穗态不断变数谈化,统计信息可能过时,从而使查询优化器做出
不正确薯族碰的判断,可以考虑rebuilt一下索引
忘记说了,索引也会在数据的变动下产生索引碎片,严重时严重影响效率
可以先查看一下索引碎片情况,然后再决定是否重建还是重组
5. sql server 2008 怎样设置内存
在安装有SQLServer数据库的计算机上,我们在使用数据库的过程中,有时候会在任务管理器里发现sqlservr.exe这个进程的内存和CPU占用率较高。
接下来我们来看一下,如何解决上面这个问题,需要设置SQLServer数据库的内存配置。登录数据库,这里使用的是SQLServer2008,右键点击最上方的服务器名,在弹出的菜单中,点击【属性】
打开服务器属性窗口。默认显示的是第一项【常规】内容,点击第二项【内存】进行内存配置。
点击【内存】后,打开服务器内存选项配置界面。这里的【使用AWE分配内存】可以对内存进行扩展支持,我们要做的是更改下方的最大服务器内存。这个数值根据自己服务器内存大小来做适当设置。
个人建议设置本机内存的一半或稍微高一点,如机器内存为2G,那么我们这里填写1000。需要注意的是内存设置调小以后,在数据库执行较复杂SQL语句的时候,可能会比较慢,出现这种情况,我们再适当上调最大内存配置大小。
6. ms server2008 sql怎样给数据库调优
该加索猛滑引的加索引
表设计的也要优枝友腊化 程序开发的也要优化
具体问题具体分析 其实我是来做告迅任务的
7. SQL Server调优系列玩转篇(如何利用查询提
第一个模块注重基础内容的掌握,共分7篇文章完成,内容涵盖一系列基础运算算法,详细分析了如何查看执行计划、掌握执行计划优化点,并一一列举了日常我们平常所写的T-SQL语句所会应用的运算符。我相信你平常所写的T-SQL语句在这几篇文章中都能找到相应的分敬皮解运算符。
第二个模块注重SQL Server执行T-SQL语句的时候一些内幕解析,共分为5篇文章完成,其中包括:查询优化器的运行方式、运行时几个优化指标值检测,统计信息、利用索引等一系列内缓耐容。通过这块内容让我们了解SQL Server为我们所写的T-SQL语亮哪差句如何进行优化及运行的。
8. SQL Server2008和SQL Server2008R2的区别,高手速进
最大的,一般人可以理解的区别可能就是,R2能支持安装的CPU数目超过64个的服务器(冒似一般人没地方派悔信找这种服务器),最大CPU支持为256个。其它的区别,一般人都闹不懂,也用不着,包括普通的程序开发者。
----------------------------------------------------------------------------------
详细的两者的差别:
1、提供对硬件资源进行深入监控的仪表、报表之类的,可以帮助用户调优SQL Server,提高硬件资源的发尘轮挥和保证系统的健康运行。
2、对超过64个内核CPU的支持。在SQL 2008中最多只支持64个CPU核,现在sql server 2008r2中可以支持256个核了!
3、在BI上进行了加强,新的“data mash up”功能实现了数据的收集、集成,数据集成工作变得更强大更容易,提供了Excel 2010的插件用于在Excel中进行数据分析;报表的设计和展示也进行了增强,变得更易上手使用。
4、对地理空间数据类型进行了增强,支持地理空间可视化。
5、SSMS得到了进一步的增强,以提供更多的功能、策略、报表等来帮助用户管理前备数据库。
9. 如何优化Windows OS使SQL Server性能最优化
怎样查出SQLServer的性能瓶颈QLServer性能监控这套性能优化的清单将至少准科学的帮助你找出你的SQLServer任何明显的性能问题。说是这样说,SQLServer的性能调优仍然是很困难的。我试图用这套清单去找出“容易”的sqlserver性能问题,困难的留待稍后。我这样做是因为很容易将容易和困难的的性能调优问题搞混。通过列出一个“容易”的性能调优范围,就很容易的将这些问题解决,一旦解决了这些容易的问题,那么你就能集中去解决更困难的问题。使用这个SQLServer性能调优清单的一个好处是,它将不仅仅告诉你目前最容易解决的性能问题是什么,而且还帮助你正确的去解决。在某种程度上,你可以选择不同的顺序进行。换句话说,你可以故意做出特殊的决定而不是按照清单通常的顺序进行。某种意义上说你是对的,不是所有的性能调优建议都适合所有的情形。另外,你的决定是基于你的资源限制,例如没有足够的钱去买满足负荷的硬件。如果真是那样的话,你就别无选择了。还有,你的决定可能基于一些政治原因,那是你不得不作出的改变。不管怎样,你需要知道你能做什么,使用这个性能调优清单找出你能改变的范围并做出相应的改变提升你的SQLServer的性能。一般来说,你将在你的每一个SQL服务器上执行这个清单。如果遇到清单中的一些问题,这会花掉你一些时间。我建议你从目前性能问题最多的的服务器开始,然后当你有时间的时候按照自己的思路去解决其他服务器。一旦你完成了,可仍然有很多事情要去做。记住,这些只是一些容易的。一旦你完成了这些容易的,接下来你需要花时间去解决更困难问题。这个是另一篇文章要解决的问题了。怎样进行你的SQLServer性能调优呢?为了使其变得容易,我把它们分成了以下几个部分:?使用性能监视器找出硬件瓶颈?SQLServer硬件性能监控列表?操作系统性能监控列表?SQLServer2000配置性能监控列表?数据库配置设置性能监控列表?索引性能监控列表?应用程序和T-SQL性能监控列表?SQLServer数据库作业性能监控列表?使用Profiler找出低效的查询?怎样最好的实现SQLServer性能监控管理你的SQLServe性能的最好方法是首先回顾上面每一部分的内容,把它们打印出来。然后完成每一部分的内容,写下你收集到的结果。你也可以按照你喜欢的顺序进行。上面的步骤仅仅列出了我执行的顺序,因为那样通常能达到一个比较好的效果。性能监控列表计数器名称均值最小值最大值Memory:Pages/secMemory:AvailableBytesPhysicalDisk:%DisktimePhysicalDisk:Avg.DiskQueueLengthProcessor:%ProcessorTimeSystem:::UserConnections在上表输入你的结果.使用性能监视器找出SQLServer硬件瓶颈开始SQLServer性能调优的最佳地方就是从性能监视器(系统监视器)开始。通过一个24小时的周期对一些关键的计数器进行监控,你将对你SQLServer服务器的硬件瓶颈了如指掌。一般来说,使用性能监视器去创建一个一些关键的计数器的24小时周期的监控日志。当你决定创建这个日志的时候,你需要选择一个典型的24小时的周期,例如,选择一个典型的比较忙的日期,而不是周日或节假日。一旦你将这些捕获的数据形成日志后,在性能监视器的图形界面下会显示计数器的推荐值。你在上表中记下均值、最小值、峰值。做完这些后,用你的结果跟下面的分析比较。通过你的结果和下面的建议值进行比较,你将能快速的找到你的SQLServe正在经历的潜在的硬件瓶颈。
10. 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
今天突然有同事问起,如何在sqlserver中调试存储过程(我们公司使用的是sqlserver 2008 R2),猛地一看,和以前使用sqlserver 2000真的有很大的不同,我真晕了。
于是琢磨了一下。SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本。非常不方便。
还好,SQLSERVER 2008中这个很重要而且方便的功能又回来了。
不过,SQLSERVER 2008的调试功能和SQL2000的方法差别很大。SQL2000是在查询分析器中的对象浏览器中选中需要调试的存储过程,右键----调试---输入参数开始调试。
sqlserver2008中则完扰虚全不同,变成了必须要在SSMS中EXEC [PROCEDURE NAME] @VAR1,@VAR2,然后点绿色三角或者点菜单中的调试---启动调试。然后点工具栏的最右边的单步调试或者跳出等。下面的变量窗口和堆栈窗口等可以查看调试中变量等动态变化值。
sqlserver2008调试的要求和条件:如果在引擎所在的电脑或服务器上调试,则只需要SA或者WINDOWS用户登陆即可。如果是异地调试,则需要设置防火墙例外,增加SSMS和SQLSERVER.EXE为允许,增加135端口允许通尘迅过。
总之,SQL2008的调试比2000操作起来麻烦多了,要求也多了。刚开派李此始感觉不如2000的好用,也可能是使用2000习惯了。习惯是可怕的,但是微软是在不断进步的..