2年SQL Server DBA调优方面总结
公告 2年SQL Server DBA调优方面总结 2年SQL Server DBA调优方面总结 当2年dba 我觉得,有些东西需要和大家分享探讨,先书单。 书单 1.《深入解析SQL Server 2008 系列》 这个就是mssql 2005 的技术内幕系列。2012版的也出了有兴趣可以看看,技术内幕系列是
公告
2年SQL Server DBA调优方面总结
2年SQL Server DBA调优方面总结
当2年dba 我觉得,有些东西需要和大家分享探讨,先书单。
书单
1.《深入解析SQL Server 2008 系列》 这个就是mssql 2005 的技术内幕系列。2012版的也出了有兴趣可以看看,技术内幕系列是我接触最早的书,里面内容涵盖量很大,但是都是点到为止。所以很多都是可以细细品味,回头再看的。
2.《Troubleshooting SQL Server A Guide for the Accidental DBA》 这本书是我接触最早的关于性能调优的书。链接已经给出可以去下载,不过需要注册SQLServerCenter ,这个网站是SQL Server 方面比较出名的网站。很多国外大牛。
3.《联机文档》也就是sql server 装机后自带的帮助文档,内容全面的吓人,几乎包含了技术内幕系列的所有内容。
4.《The.Gurus.Guide.To.SQL.Server.Architecture.And.Internals》这本书是将sql server 2000的内核,从软件开发的角度来看SQL Server 2000,很深入作者也十分的出名,可惜死的太早。对sql server框架理解主要来源于这本书,可惜没有中文版。
5.《SQL Server 2008 内核剖析和故障排除》接触的第二本关于性能调优的书,真本书比较绝的地方时,先将原理再讲调优。全书分为2部分第一部分就是原理,第二部分是性能调优。也是不错的一本,书中对扩展事件的功能做了比较详细的解释。我在其他书上是没看到过的。
该书的2012英文原版已经出了。
6.《Microsoft SQL Server企业级平台管理实践》是一本少见的国产好书,书的编写很符合中国人心理,直指问题本身,很适合当工具书。其中有关于性能跟踪调整,从捕获到处理讲的很实际。
7.《SQLSERVER求生秘籍》和《The.Gurus.Guide.To.SQL.Server.Architecture.And.Internals》是同一个作者,这本书主要是针对SQL Server 2005和上一本一样对个别点讲的很深入,缺点讲到的东西太少。
8.《SQL Server 2008查询性能调优》这本书比较实用的一本书,讲了各个瓶颈的发现,性能基线的简历,从查询,存储过程角度出发,分析性能,讲解可能出现性能问题的点。
9.《Pro SQL Server 2008 Service Broker》 讲解关于Service Broker,异步消息处理程序,很多比较大的公司会使用,我知道的是新蛋是使用这个的,全书围绕一个大例子比较清晰,容易接受。
10.《Pro SQL Server 2008 Policy-Based Management》关于策略管理方面的知识,个人觉得比较鸡肋。
安全性
楼主是小公司的DBA所以关于安全性使用的比较少,就管理一些权限和密码
可用性
到SQL Server 2012实现了多种可用性方案,1.日志传送,2.数据库复制,3.数据库镜像,4.alwaysonline。
1.日志传送,楼主觉得是数据库镜像的雏形。没有数据库镜像那样试试的传送和redo日志
2.数据库复制,数据库复制有比较多的分类:快照,事务,合并。事务复制是被应用最广的,从sql server 2000到sql server 2005事务复制被改进了很对具体可以看联机文档。
3.数据库镜像,我对于不需要读写分离的数据库中,数据库镜像是被应用最广的可用性方案,数据库镜像和其他的比最突出的优点是切换方便。
高性能
DBA的大头应该是性能调优。性能的调优大头是索引,最求更高的性能索引是必不可少的。一个性能主要体现的执行时间上,执行时间= 运行时间+等待时间。这个公式我觉得很经典。当你没有头绪的时候能帮你梳理清楚应该怎么排查问题。做性能调优一定要对性能的指标十分熟悉。
性能基线
当你刚刚入职一家公司,对公司数据库现在的负载一无所知,那么一开始要做的事情就是创建一个数据库性能基线。有人会问基线能用来干什么,很多人感觉没用,我刚入职时我也觉得没用。但是性能基线是一个性能调优,监控的开始。
一般比较正规的公司,一个业务上线前会通过压力测试预计这个服务器的性能边境在哪里,到达性能边境之后各个性能指标的表现是如何的。如果如果性能基线接近了性能边界,到了这个时候,那么就要考虑换服务器或者加服务器了。这个是性能基线的一个用处。
拿到一个服务器我先会做一下性能基线,网站空间,性能基线也就是服务器在正常运转的时候数据库的性能指标的表现。我会抓取24小时的性能指标作为性能基线(可以看我相关的文章:SQL Server 性能基线和监控,SQL Server 性能调优(性能基线))。
以下是我使用的抓取的指标
cpu:
\Processor(_Total)\% Processor Time
\Processor(_Total)\% Privileged Time
\SQLServer:SQL
Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\System\Processor Queue Length
\System\Context Switches/sec
Memory:
\Memory\Available
Bytes
\Memory\Pages/sec
\Memory\Page Faults/sec
\Memory\Pages Input/sec
\Memory\Pages Output/sec
\Process(sqlservr)\Private Bytes
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page life expectancy
\SQLServer:Buffer Manager\Lazy writes/sec
\SQLServer:Memory Manager\Memory Grants Pending
\SQLServer:Memory Manager\Target Server Memory (KB)
\SQLServer:Memory Manager\Total Server Memory (KB)
Disk:
\PhysicalDisk(_Total)\%
Disk Time
\PhysicalDisk(_Total)\Current Disk Queue Length
\PhysicalDisk(_Total)\Avg. Disk Queue Length
\PhysicalDisk(_Total)\Disk Transfers/sec
\PhysicalDisk(_Total)\Disk Bytes/sec
\PhysicalDisk(_Total)\Avg. Disk sec/Read
\PhysicalDisk(_Total)\Avg. Disk sec/Write
SQL Server:
\SQLServer:Access
Methods\FreeSpace Scans/sec
\SQLServer:Access Methods\Full Scans/sec
\SQLServer:Access Methods\Table Lock Escalations/sec
\SQLServer:Access Methods\Worktables Created/sec
\SQLServer:General Statistics\Processes blocked
\SQLServer:General Statistics\User Connections
\SQLServer:Latches\Total Latch Wait Time (ms)
\SQLServer:Locks(_Total)\Lock Timeouts (timeout > 0)/sec
\SQLServer:Locks(_Total)\Lock Wait Time (ms)
\SQLServer:Locks(_Total)\Number of Deadlocks/sec
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
指标代表啥意思我就不解释了,美国服务器,你可以开perfmon,挨个看说明。
假设你现在已经有了性能指标了,那么你就可以根据性能基线简历告警了,以前的文章(SQL Server 性能基线和监控)中我已经提供了使用powershell如何监控性能。
性能运行性能问题分析:

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Comment utiliser php-fpm pour un réglage hautes performances PHP est un langage de script côté serveur très populaire, largement utilisé pour développer des applications Web et des sites Web dynamiques. Cependant, à mesure que le trafic augmente, les performances de votre application PHP peuvent en souffrir. Afin de résoudre ce problème, nous pouvons utiliser php-fpm (FastCGIProcessManager) pour un réglage hautes performances. Cet article expliquera comment utiliser php-fpm pour améliorer les performances des applications PHP et fournira des exemples de code. un,

WindowsServerBackup est une fonction fournie avec le système d'exploitation WindowsServer, conçue pour aider les utilisateurs à protéger les données importantes et les configurations système, et à fournir des solutions complètes de sauvegarde et de récupération pour les petites, moyennes et grandes entreprises. Seuls les utilisateurs exécutant Server2022 et versions ultérieures peuvent utiliser cette fonctionnalité. Dans cet article, nous expliquerons comment installer, désinstaller ou réinitialiser WindowsServerBackup. Comment réinitialiser la sauvegarde de Windows Server Si vous rencontrez des problèmes avec la sauvegarde de votre serveur, si la sauvegarde prend trop de temps ou si vous ne parvenez pas à accéder aux fichiers stockés, vous pouvez envisager de réinitialiser vos paramètres de sauvegarde de Windows Server. Pour réinitialiser Windows

Résumé de la fonction system() sous Linux Dans le système Linux, la fonction system() est une fonction très couramment utilisée, qui permet d'exécuter des commandes en ligne de commande. Cet article présentera la fonction system() en détail et fournira quelques exemples de code spécifiques. 1. Utilisation de base de la fonction system(). La déclaration de la fonction system() est la suivante : intsystem(constchar*command) où le paramètre de commande est un caractère.

A l'occasion de la sortie de la version build 26040 de Windows Server, Microsoft a annoncé le nom officiel du produit : Windows Server 2025. La version build26040 de Windows11WindowsInsiderCanaryChannel est également lancée. Certains amis se souviennent peut-être encore qu'il y a de nombreuses années, quelqu'un a réussi à convertir Windows NT du mode poste de travail au mode serveur, montrant ainsi les points communs entre les différentes versions des systèmes d'exploitation Microsoft. Bien qu'il existe des différences évidentes entre la version actuelle du système d'exploitation serveur de Microsoft et Windows 11, ceux qui prêtent attention aux détails peuvent être curieux : pourquoi Windows Server a mis à jour la marque,

Une tâche importante en ML est la sélection de modèles ou l'utilisation de données pour trouver le meilleur modèle ou les meilleurs paramètres pour une tâche donnée. C'est ce qu'on appelle également le réglage. Vous pouvez régler un seul estimateur, tel que LogisticRegression, ou un pipeline entier comprenant plusieurs algorithmes, caractérisations et autres étapes. Les utilisateurs peuvent régler l'ensemble du pipeline en même temps, plutôt que de régler chaque élément du pipeline individuellement. Une tâche importante en ML est la sélection de modèles ou l'utilisation de données pour trouver le meilleur modèle ou les meilleurs paramètres pour une tâche donnée. C'est ce qu'on appelle également le réglage. Un seul estimateur (tel que LogisticRegression) peut être réglé, ou

Dans le domaine de l’intelligence artificielle, les grands modèles linguistiques (LLM) deviennent de plus en plus un nouveau point chaud en matière de recherche et d’application. Cependant, comment régler ces géants de manière efficace et précise a toujours été un défi important auquel sont confrontés l'industrie et le monde universitaire. Récemment, le blog officiel de PyTorch a publié un article sur TorchTune, qui a attiré une large attention. En tant qu'outil axé sur le réglage et la conception des LLM, TorchTune est très apprécié pour sa nature scientifique et son caractère pratique. Cet article présentera en détail les fonctions, les caractéristiques et l'application de TorchTune dans le réglage des LLM, dans l'espoir de fournir aux lecteurs une compréhension complète et approfondie. 1. L'origine et l'importance de TorchTune, le développement de la technologie d'apprentissage profond et le modèle d'apprentissage profond (LLM)

En tant que langage côté serveur populaire, PHP joue un rôle important dans le développement et l’exploitation de sites Web. Cependant, à mesure que la quantité de code PHP continue d'augmenter et que la complexité de l'application augmente, des goulots d'étranglement en termes de performances deviennent de plus en plus susceptibles de se produire. Afin d'éviter ce problème, nous devons effectuer une analyse et un réglage des performances. Cet article présentera brièvement comment utiliser PHP pour l'analyse et le réglage des performances afin de fournir un environnement d'exécution plus efficace pour votre application. 1. Outil d'analyse des performances PHP 1.XdebugXdebug est un outil d'analyse de code largement utilisé.

Explication détaillée des pratiques de réglage pour améliorer la vitesse d'accès aux sites Web en langage Go Résumé : À l'ère du développement rapide d'Internet, la vitesse d'accès aux sites Web est devenue l'un des facteurs importants permettant aux utilisateurs de choisir un site Web. Cet article présentera en détail comment utiliser le langage Go pour optimiser la vitesse d'accès aux sites Web, y compris une expérience pratique de l'optimisation des requêtes réseau, de l'utilisation du cache et du traitement simultané. L'article fournira également des exemples de code pour aider les lecteurs à mieux comprendre et appliquer ces techniques d'optimisation. 1. Optimiser les requêtes réseau Dans le développement de sites Web, les requêtes réseau sont un lien inévitable. Et l'optimisation des requêtes réseau peut
