SQL Server并行度问题

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

SQL Server并行度问题

数据库调优 你会看到并行度,现在给你介绍什么是并行度。

SQL服务器有4颗CPU

image

同一sql语句的查询计划相同,你可以指定使用几颗CPU,sql server默认有多少个核,并行度就是多少。

一颗CPU不涉及并行度问题

image

    hp并行度默认为4*6=24

   dell并行度默认为4*4=16

   将两台机器sql server的并行度都强制手工设置为2,然后进行测试,测试结果如下:

   在第一个查询最后加上参数 option(MAXDOP 2),然后分别在hp和dell上执行,耗时都是2s,将参数值改为 1 后,耗时都是1s。

    在第二个查询最后加上参数option(MAXDOP 2),然后分别在hp和dell上执行,耗时都是2s,将参数值改为 1 后,耗时都是1s。

image

   由此可看出,问题确实是由并行度不同而引起的。

并行度越高,sql查询并不一定就越快,可能会变慢,但也并不是核越少越好。

   在执行查询的时候,sql server会自动分析sql语句,制定查询计划,为每颗CPU分配任务,cpu过多的话,分配任务所耗的时见就越长,但查询本身执行时间并没有变长。在达到4CPU后,cpu主频越高,sql查询就越快。

   一般情况下,在自定义sql server所使用的核数的时候,可以用总核数 /2或4。

   微软根据实际经验得出,sql server用4个核效率最高。对于sql server来说,cpu是透明的,并不关心哪颗核位于哪颗CPU上。

  sql server所支持的cpu个数受sql server版本和操作系统版本所影响。

  sql server 2000 sp4 + windows2003 sp2,sql server最多支持4个核。

  并行度对SQL Server2000,2005,2008都有影响,实际上都只支持4个核。

 更改sql server并行度有两种方法,如下:

  1.在服务器级别适用如下语句更改

在sql语句结尾处关闭统计 :

select getdate()   
set statistics profile off    
set statistics io off    
set statistics time off

如此可以得到该sql语句执行的磁盘 io开销、 时间信息,便于我们以后分析其他sql语句、查找数据库瓶颈。

sql的服务器属性的 处理器选项卡 当中的默认值最好不要进行更改,如果更改有可能引起数据库的不稳定,通过该选项卡更改,是需要从新启动服务器。更改设置 最好通过 sql语句来进行,不需要重新启动服务器。---- 微软选项卡功能读解:1)处理器控制:通过该项可以选择使用的cpu2)最大工作线程:255 (在微软的官方网站上可以看查到,8颗cpu 可以设置到480 ,但建议不要设置)   
3)在windows上提升 sqlserver的优先级:该项可以设置,在专门的数据库服务器上可以设置该项,但仅限于专门的sql server服务器。--- 微软也认可。



本文转自 onesthan 51CTO博客,原文链接:http://blog.51cto.com/91xueit/1357896,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
90 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
57 6
|
4月前
|
SQL Oracle 关系型数据库
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
271 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
391 0
|
4月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之如何提升sql任务并行度
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
253 3
|
4月前
|
SQL 监控 数据库
SQL Server 查询超时问题排查
【7月更文挑战第8天】排查 SQL Server 查询超时涉及五个主要方面:检查复杂查询、评估服务器性能、审视配置参数、更新统计信息和分析执行计划。关注点包括查询的结构(如连接、子查询和索引),服务器资源(CPU、内存、网络延迟),连接和内存设置,以及统计信息的时效性。通过这些步骤可定位并解决性能瓶颈。
110 0