sqlserver的性能,sqlserver的性能优化

sql server和mysql性能对比

1.性能: 这可能是所有DBA最关心的。mysql的读写性能确实一流,即使针对大数据...

创新互联公司主营宁津网站建设的网络公司,主营网站建设方案,重庆APP开发,宁津h5微信小程序开发搭建,宁津网站营销推广欢迎宁津等地区企业咨询

2.对机器配置的要求 mysql对机器配置要求不高(于sqlserver相比)。...

3.安全性 感觉mysql5+linux2.6的安全性高于win2ksp4+sqls...

4.可配置性 mysql可配置性很好,基于文本文件,很细很清晰。而sqlse...

5.功能 这点mysql与sqlserver确实没法比,如存储过程/触发器/丰富的函数/...

sqlserver 怎么样优化性能

SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:

1、没有索引或者没有用到索引(这是查询慢最常见的问题,是数据库设计的缺陷)

2、I/O吞吐量小,形成了瓶颈效应。

3、没有创建计算列导致查询不优化。

4、内存不足

5、网络速度慢

6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)

7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)

8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。

9、返回了不必要的行和列

10、查询语句不好,没有优化

●可以通过以下方法来优化查询 :

1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要。

2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)

3、升级硬件

4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。

5、提高网速。

6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。

配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server? 2000时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的1.5倍。如果另外安装了全文检索功能,并打算运行Microsoft搜索服务以便执行全文索引和查询,可考虑:将虚拟内存大小配置为至少是计算机中安装的物理内存的3倍。将SQL Server max server memory服务器配置选项配置为物理内存的1.5倍(虚拟内存大小设置的一半)。

7、增加服务器CPU个数;但是必须 明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是MSSQL自动评估选择的。单个任务分解成多个任务,就可以在处理器上运行。例如耽搁查询 的排序、连接、扫描和GROUP BY字句同时执行,SQL SERVER根据系统的负载情况决定最优的并行等级,复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作UPDATE,INSERT, DELETE还不能并行处理。

8、如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查询时,查询耗时和字段值总长度成正比,所以不能用CHAR类型,而是VARCHAR。对于字段的值很长的建全文索引。

9、DB Server 和APPLication Server 分离;OLTP和OLAP分离

10、分布式分区视图可用于实现数据库服务器联合体。

联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。有关更多信息,参见设计联合数据库服务器。(参照SQL帮助文件''分区视图'')

a、在实现分区视图之前,必须先水平分区表

b、 在创建成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称。这样,引用分布式分区视图名的查询可以在任何一个成员服务器上 运行。系统操作如同每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。

11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和日志 DBCC SHRINKDB,DBCC SHRINKFILE. 设置自动收缩日志.对于大的数据库不要设置数据库自动增长,它会降低服务器的性能。

在T-sql的写法上有很大的讲究,下面列出常见的要点:首先,DBMS处理查询计划的过程是这样的:

1、 查询语句的词法、语法检查

2、 将语句提交给DBMS的查询优化器

3、 优化器做代数优化和存取路径的优化

4、 由预编译模块生成查询规划

5、 然后在合适的时间提交给系统处理执行

6、 最后将执行结果返回给用户。

其次,看一下SQL SERVER的数据存放的结构:一个页面的大小为8K(8060)字节,8个页面为一个盘区,按照B树存放。

如何测试sqlserver性能

1、打开sql server studio management

2、打开"工具"-"sql server profiler"

3、点击连接

4、点击运行

5、可以看到捕捉到的一些访问数据库的事件,其中有读写,点用cpu,持续时间等信息可以参考

6、点击某个事件,可以查看具体执行了什么sql脚本,进一步分析相关逻辑

MySQL和SQLServer相比,哪个性能更好

mysql和sqlserver相比,哪个性能更好

主要差别,sql

server是微软的,只在windows里能用。mysql,各种操作系统都能用。要说性能,sun公司已经把mysql做到很好了,可以支持大型系统。但是oracle以后会不会把mysql做到能够威胁oracle数据库的程度,就不知道了。

SQL Server 与 MySQL 性能相差多大

MySQL和SQLServer的比较

对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL和SQLServer。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用sql来访问这两种数据库的数据,因为它们都支持ansi-sql。 还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持xml的各种格式。除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。

根本的区别是它们遵循的基本原则

二者所遵循的基本原则是它们的主要区别:开放vs保守。SQLServer服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQLServer服务器的sybase引擎,但MySQL能够提供更多种的选择,如myisam, heap, innodb, and berkeley db。MySQL不完全支持陌生的关键词,所以它比SQLServer服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如myisam引擎联支持交换功能。

发行费用:MySQL不全是免费,但很便宜

当提及发行的费用,这两个产品采用两种绝然不同的决策。对于SQLServer服务器,获取一个免费的开发费用最常的方式是购买微软的office或者visual studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买sql server standard edition。学校或非赢利的企业可以不考虑这一附加的费用。

性能:先进的MySQL

纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式myisam。myisam 数据库与磁盘非常地兼容而不占用过多的cpu和内存。MySQL可以运行于windows系统而不会发生冲突,在unix或类似unix系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL作为后台数据库。

当提及软件的性能,SQLServer服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQLServer服务器,我建议你最好选择其他如dbms数据库,因为这样你会得到更好的结果。

安全功能

MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。

在SQLServer服务器中,你也可以记录SQLServer的有关查询,但这需要付出很高的代价。

安全性

这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的ip端口,但是有时候很不幸,这些ip也会被一些黑客闯入。当然,你也可以自己设置这些ip端口。

恢复性:先进的sql服务器

恢复性也是MySQL的一个特点,这主要表现在myisam配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于SQLServer服务器而言就表现得很稳键。SQLServer服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。

根据需要决定你的选择

对于这两种数据库,如果非要让我说出到底哪一种更加出色,也许我会让你失望。以我的观点,任一对你的工作有帮助的数据库都是很好的数据库,没有哪一个数据库是绝对的出色,也没有哪一个数据库是绝对的差劲。我想要告诉你的是你应该多从你自己的需要出发,即你要完成什么样的任务?而不要单纯地从软件的功能出发。

如果你想建立一个.net服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用SQLServer服务器。如果你想建立一个第三方站点,这一站点可以从一些客户端读取数据,那么MySQL将是最好的选择。 

这两者数据库都能够在.net或j2ee下运行正常,同样,都能够利用raid。

怎样查出SQLServer的性能瓶颈

自定义性能监控

在这一点上,我假定你已经阅读了,或者至少浏览了所有监控步骤的建议。我猜你也许读了一些,但那些真正不适合于你。既然大部分的SQLServer安装稍微有点不同,那么这是有意义的。因此我建议你为你特定的环境自定义这个监控,添加或删除一些步骤使其更适合你的需求。

使用Word或Excel维护你的监控列表

当你对你的每一个SQLServer进行监控时,你需要一个方法去记录结果。当你有大量的选项时,从这一系列的文章里复制适合的监控列表到你的Word或Excel文档作为起点是比较快速的方法。你可能要为每个服务器创建一个单独的监控列表。如果你决定为你的监控表格使用Excel的话,你能输入所有的监控列表项目作为行,每一个监控的服务器作为单独的列。这样你能快速的查看每个SQLServer的结果。

设置SQLServer和数据库的优先级

如果你管理大量的SQLServer和数据库,你也许不知道从哪儿开始性能监控。理论上,你应该设置SQLServer和数据库的优先级,一些需要立即进行最多的性能监控,而其他的则不必进行那么多的监控。这会帮助你决定从哪儿开始。最可能的是,你将不会立即监控全部。相反,要在能监控的时候监控,按照从最重要到最不重要的顺序进行。

谨记性能监控的关键

当对SQLServer进行监控的时候

,记住目的是分辨并纠正容易的问题。但是,正如你所料,你将可能也分辨出一些更难于解决的问题。为了帮助你更好的管理有限的时间,你现在需要着眼于那些容易的问题,把困难的问题留到容易的问题先解决完之后。所以在你执行监控和分辨问题时,按照难易程度分类设置它们的优先级,将困难的问题留待你有足够时间处理它们的时候。

不要过早行动

当你执行监控时,你可能会急于对偶然遇到的问题进行纠正和修改。大多数情况下,那样做可能不是问题。但理论上,最好先执行监控,然后基于你的发现,决定正式动手解决你分辨出的问题,然后系统地实现它们。

一个推荐步骤,但或许会招来很多疑问

理想情况下,如有很多的时间,在服务器上执行一个性能基准是一个好的想法,然后执行监控,做任何需要的更改,再执行另一个性能基准去看看有什么情况发生。这会立即让你知道你所做的是否有帮助,大多数情况下,没有做正确的事。虽然这个建议被强烈的推荐,也许从时间来看不很实际。但如果你有时间的话,应该认真考虑。

另一个推荐步骤,但或许也会招来很多疑问

在执行监控之后,你也许发现在单个的SQLServer上所有需要的更改仅只有一两个,但在其他SQLServer上,也许需要做一打的更改。如果有那么的更改要做,不要立刻全部实现它们,仅仅一次一个或几个的更改也许是一个明智的选择。这样,你能够看看每个或每批更改对服务器产生的效果。如果你一次做了很多的更改,那么遇到问题时,你将不会知道是由哪个更改引起的问题,这要求你回滚所有的更改,然后一个一个的测试它们直到找到问题所在为止。

这个建议不会有太多疑问

如果你要做更改的服务器是有紧要事务的生产服务器,你要对你做的更改倍加小心。理论上,你应该在生产服务器应用更改之前在测试用的SQLServer上测试所有的更改。如果你不实践,那么每次仅做一个更改,确信如果有任何问题你知道怎样回滚更改。另外,试着选取一天中不很忙的时候做更改,万一有问题的话。

有一个取消计划

你因监控而做出的大多数更改应该能够很容易的回滚。但一些也许不那么容易。在那些情况下,你需要有一个万一需要的取消计划。例如,在你做出任何关键的更改之前备份系统和用户数据库。那样,即使出现问题,你也能将你的服务器恢复到更改之前的状态。我不是吓唬你不要做更改,但你总应该有所准备。

记录所有更改

当你基于性能监控做出更改时,确定你对所有的更改做了记录。这样,即使后来有什么问题,你也能更容易的找出错误所在。最容易记录下你的更改的方法可能就是把它们添加到你的监控表格里,或者其他你用来收集监控信息的文档里。

每年都要执行SQLServer的性能监控

许多SQLServer(并非全部)随着时间而改变。设置改变,打了SP补丁,甚至数据也改变了。所有的这些都会影响性能。确定你SQLServer最优性能的最好方法是做一个手工的性能监控。


本文标题:sqlserver的性能,sqlserver的性能优化
网页路径:http://myzitong.com/article/dsedjsg.html