对于一套新的sqlserver服务器,我们首先要对它做一些必要的优化配置,确保在生产上比较长的时间段内可以比较稳定的,良好的运行。

新的sqlserver服务器上安装的sqlserver版本,可以选择sqlserver2014 企业版本,这个版本相对稳定了,相对也比较新的版本。

sqlserver配置优化:

1、最小,最大内存配置

最小内存一般设置1~2G,满足最小运行的状态的配置。

最大内存,这个一定要设置,一般如果是独立的一个数据库服务器,规划操作系统的内存使用资源,其他全部给到sqlserver,这个如果不

设置默认是服务器的最大内存,如果出现一个峰值,正好突破服务器的最大内存,那么数据库服务器有宕机的可能性。

2、内存锁定页

关于内存锁定页的作用和配置的步骤,我们直接可以参考下官方文档:

启动内存锁定页

如果sqlserver服务器是一个独立的数据库服务器,这个配置不设置也没问题

3、配置“对即时负载的优化”

SP_Configure 'show advanced options', 1

Reconfigure

GO

EXEC sp_configure 'optimize for ad hoc workloads',1

Reconfigure

当新查询执行时,query_hash值会在内存中生成,而不是整个执行计划,当相同的查询第二次执行的时候,SQLServer会查找是否已经存在这个query_hash,如果不存在,执行计划将保存在缓存中。这样就使得仅执行一次的查询将不会保存执行计划到缓存中。所以强烈建议打开这个配置。这个配置不造成任何负面影响,但是可以节省计划缓存的空间

4、数据文件,日志文件,tempdb文件分离

一般数据库服务器有多个物理磁盘,可以将数据文件,日志文件,tempdb文件分散到不同的磁盘上去,从而增加I/O能力。

特别对于tempdb文件,尽量放在性能比较高的磁盘上

5、索引文件,数据文件分离

默认索引文件,数据文件是放在同一个数据文件组的,可以分成不同的文件组,从而实现索引文件与数据文件分离,索引文件可以放在

性能比较高的磁盘上,这样对查询效率会有比较好的提高。这个根据实际情况来做,因为这个需要把原有的索引全部重新建立一遍。

6、日志文件

日志文件的管理,大家可以看下官方文档 管理事务日志的大小

日志文件要根据实际的生产上的增长情况,设定初始大小和增长的大小,如果是数据库迁移,可以根据正在运行的生产环境的情况,

来设定日志文件的初始大小,增加的方式与大小

可以根据 建议脚本 来设定。

7、tempdb文件

tmpdb是比较重要的,临时表,建立索引,数据库运行中的中间变量都会用到tempdb

tempdb的文件建立个数,要按照实际的生产环境情况来定,下面有个参照表:

基于 DTU 的服务层的 tempdb 大小

SLO 最大 tempdb 数据文件大小 (MB) tempdb 数据文件数 最大 tempdb 数据大小 (MB)
“基本” 14,225 @shouldalert 14,225
S0 14,225 @shouldalert 14,225
S1 14,225 @shouldalert 14,225
S2 14,225 @shouldalert 14,225
S3 32,768 @shouldalert 32,768
S4 32,768 2 65,536
S6 32,768 3 98,304
S7 32,768 6 196,608
S9 32,768 12 393,216
S12 32,768 12 393,216
P1 32,768 12 393,216
P2 32,768 12 393,216
P4 32,768 12 393,216
P6 32,768 12 393,216
P11 32,768 12 393,216
P15 32,768 12 393,216
高级弹性池(所有 DTU 配置) 14,225 12 170,700
标准弹性池(所有 DTU 配置) 14,225 12 170,700
基本弹性池(所有 DTU 配置) 14,225 12 170,700
 

DTU是一个资源度量单位,详细可以参考 这个文章 DTU和eTUD

一般可以先尝试建8个对应的tempdb的文件。

下面的脚本可以查询当前tempdb的大小和增长参数,迁移数据的时候,可以根据下面的脚本查询,来设定

新的数据库的tempdb的初始大小,和增长的大小

SELECTnameAS FileName,

size*1.0/128AS FileSizeinMB,
CASE max_size
WHEN0THEN'Autogrowth is off.'WHEN-1THEN'Autogrowth is on.'ELSE'Log file grows to a maximum size of 2 TB.'END,
growth AS'GrowthValue',
'GrowthIncrement' =
CASEWHEN growth = 0THEN'Size is fixed.'WHEN growth > 0AND is_percent_growth = 0THEN'Growth value is in 8-KB pages.'ELSE'Growth value is a percentage.'ENDFROM tempdb.sys.database_files;
GO

8、建立自动化维护job

可以建立一些日常的自动化维护job,比如自动清理索引碎片,自动更新索引统计信息等等

这些可以参考一些其他sqlserver管理方面的资料,不再详细叙述.

9、其他

sqlserver里面还有很多其他一些配置项,比如cpu的使用个数,并行度设置,索引创建时的内存等等。

可以通过查询sys.configurations

查询所有的sqlserver的配置项,一般这些配置项可以先按默认值,根据生产中的实际情况再调整.

sqlserver配置实践的更多相关文章

  1. SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用

    转:https://yq.aliyun.com/articles/42270 title: SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用 author: 石沫 背 ...

  2. 【转】Flume(NG)架构设计要点及配置实践

    Flume(NG)架构设计要点及配置实践   Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Fl ...

  3. [转载] iptables配置实践

    原文: http://wsgzao.github.io/post/iptables/ iptables配置实践 By wsgzao 发表于 2015-07-24 文章目录 1. 前言 2. 更新历史 ...

  4. Zookeeper、Solr和Tomcat安装配置实践

    Zookeeper.Solr和Tomcat安装配置实践

  5. NTP配置实践

    前言 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.不管是平时使用的私人计算机还是在工作中搭建的服务器集群.时间的统一性和准确性是十分 ...

  6. 第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器

    原文:第十七章--配置SQLServer(1)--为SQLServer配置更多的处理器 前言: SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置.微软建 ...

  7. MySql主从配置实践及其优势浅谈

    MySql主从配置实践及其优势浅谈 1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my ...

  8. 原创:路由配置实践 两个局域网主机的互连 VM linux

    又开始齐天大圣讲课的时间了 我相信网络是每个运维人员和开发人员必不可少要接触的   今天我们要讲的是在VM虚拟机中 我们三台虚拟机划分两个局域网 实现不同局域网的互联 也就是下面图中的AC通过B主机的 ...

  9. Celery配置实践笔记

    说点什么: 整理下工作中配置celery的一些实践,写在这里,一方面是备忘,另外一方面是整理成文档给其他同事使用. 演示用的项目,同时也发布在Github上: https://github.com/b ...

随机推荐

  1. php开发中应该注意的错误开关与常见处理[开发篇]

    我们可能一开始就接触一个项目的开发,刚开始时都是信心满满,一定把这个项目做得非常完美,但是时间那么少,任务那么多,我们就只有将就了. 首先,一般情况下,我们会加一个调试标志,define('APP_D ...

  2. CentOS第一次安装MySQL的完整步骤

    文章来自:http://www.jianshu.com/p/4a41a6df19a6,我自己调整了下 1.官方安装文档 http://dev.mysql.com/doc/mysql-yum-repo- ...

  3. Linux学习笔记之三————Linux命令概述

    一.引言 很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务. Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成, ...

  4. js实现oss文件上传及一些问题

    关于兼容性问题,ie8以下的可以使用4.x的版本 一.引入sdk和jq <script src="http://libs.baidu.com/jquery/2.0.0/jquery.m ...

  5. 从零开始学 Web 之 CSS3(七)多列布局,伸缩布局

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. Percona Toolkit mysql辅助利器

    1 PT介绍 Percona Toolkit简称pt工具—PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性.检查重复索引.定位IO占用高的表文件.在 ...

  7. Spring Boot + Spring Cloud 构建微服务系统(六):熔断监控集群(Turbine)

    Spring Cloud Turbine 上一章我们集成了Hystrix Dashboard,使用Hystrix Dashboard可以看到单个应用内的服务信息,显然这是不够的,我们还需要一个工具能让 ...

  8. 内核开发知识第一讲.内核中的数据类型.重要数据结构.常用内核API函数.

    一丶内核中的数据类型 在内核中.程序的编写不能简单的用基本数据类型了. 因为操作系统不同.很有可能造成数据类型的长度不一.而产生重大问题.所以在内核中. 数据类型都一定重定义了. 数据类型 重定义数据 ...

  9. [译]ABP vNext微服务演示,项目状态和路线图

    译注: ABP的主要负责人hikalkan最近又发布了一篇博客, 说明了ABP vNext的微服务演示,项目状态和路线图.其中特意对ABP的中文社区进行了感谢! 本文翻译自该博客文章(https:// ...

  10. 微信公众平台.net HttpClient 异步客户端

    微信公众平台.net HttpClient 异步客户端 该客户端实现了对微信公众平台的后台管理,包括获取Token,发生客服消息(文本,图片,语音,视频),自定义菜单的创建,查询,删除,查询订阅用户, ...