{"id":44391,"date":"2025-06-18T17:18:01","date_gmt":"2025-06-18T09:18:01","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/44391.html"},"modified":"2025-06-18T17:18:01","modified_gmt":"2025-06-18T09:18:01","slug":"sql-server-%e6%95%b0%e6%8d%ae%e5%ba%93%e6%95%85%e9%9a%9c%e4%b8%8e%e6%80%a7%e8%83%bd%e9%ab%98%e6%95%88%e5%ae%9e%e6%97%b6%e7%9b%91%e6%b5%8b%e6%8a%80%e6%9c%af%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/44391.html","title":{"rendered":"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618091754-6852844229ba7.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>\u5173\u952e\u8bcd&#xff1a; SQL Server \u6545\u969c\u4e0e\u6027\u80fd\u76d1\u63a7\u3001\u6570\u636e\u5e93\u76d1\u6d4b\u3001\u5b9e\u65f6\u76d1\u63a7\u3001\u6027\u80fd\u8c03\u4f18<\/p>\n<hr \/>\n<h3>&#x1f4cb; \u6587\u7ae0\u76ee\u5f55<\/h3>\n<h4>1. \u5f15\u8a00\u4e0e\u76d1\u63a7\u91cd\u8981\u6027<\/h4>\n<h4>2. SQL Server \u76d1\u63a7\u57fa\u7840\u67b6\u6784<\/h4>\n<h4>3. \u6545\u969c\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790<\/h4>\n<h4>4. \u6027\u80fd\u76d1\u63a7\u6838\u5fc3\u6280\u672f<\/h4>\n<h4>5. \u5b9e\u65f6\u76d1\u6d4b\u5de5\u5177\u4e0e\u89e3\u51b3\u65b9\u6848<\/h4>\n<h4>6. \u76d1\u63a7\u6700\u4f73\u5b9e\u8df5\u4e0e\u6848\u4f8b<\/h4>\n<h4>7. \u603b\u7ed3\u4e0e\u5c55\u671b<\/h4>\n<hr \/>\n<h3>1. \u5f15\u8a00\u4e0e\u76d1\u63a7\u91cd\u8981\u6027<\/h3>\n<p>\u5728\u5f53\u4eca\u6570\u636e\u9a71\u52a8\u7684\u5546\u4e1a\u73af\u5883\u4e2d&#xff0c;SQL Server\u6570\u636e\u5e93\u4f5c\u4e3a\u4f01\u4e1a\u6838\u5fc3\u6570\u636e\u5b58\u50a8\u548c\u5904\u7406\u5e73\u53f0&#xff0c;\u5176\u7a33\u5b9a\u6027\u548c\u6027\u80fd\u76f4\u63a5\u5f71\u54cd\u4e1a\u52a1\u8fde\u7eed\u6027\u3002\u636e\u7edf\u8ba1&#xff0c;\u6570\u636e\u5e93\u6545\u969c\u9020\u6210\u7684\u4e1a\u52a1\u635f\u5931\u6bcf\u5c0f\u65f6\u53ef\u8fbe\u6570\u4e07\u81f3\u6570\u767e\u4e07\u5143&#xff0c;\u56e0\u6b64\u5efa\u7acb\u9ad8\u6548\u7684\u5b9e\u65f6\u76d1\u6d4b\u4f53\u7cfb\u81f3\u5173\u91cd\u8981\u3002<\/p>\n<h4>1.1 \u76d1\u63a7\u7684\u6838\u5fc3\u4ef7\u503c<\/h4>\n<p>\u9884\u9632\u6027\u7ef4\u62a4&#xff1a; \u901a\u8fc7\u6301\u7eed\u76d1\u63a7&#xff0c;\u5728\u95ee\u9898\u53d1\u751f\u524d\u8bc6\u522b\u6f5c\u5728\u98ce\u9669 \u5feb\u901f\u54cd\u5e94&#xff1a; \u5b9e\u65f6\u544a\u8b66\u673a\u5236\u786e\u4fdd\u6545\u969c\u7b2c\u4e00\u65f6\u95f4\u88ab\u53d1\u73b0\u548c\u5904\u7406 \u6027\u80fd\u4f18\u5316&#xff1a; \u57fa\u4e8e\u76d1\u63a7\u6570\u636e\u8fdb\u884c\u6027\u80fd\u8c03\u4f18&#xff0c;\u63d0\u5347\u7cfb\u7edf\u6548\u7387 \u5bb9\u91cf\u89c4\u5212&#xff1a; \u901a\u8fc7\u5386\u53f2\u6570\u636e\u5206\u6790&#xff0c;\u5408\u7406\u89c4\u5212\u8d44\u6e90\u6269\u5bb9<\/p>\n<h4>1.2 \u76d1\u63a7\u6311\u6218\u4e0e\u89e3\u51b3\u601d\u8def<\/h4>\n<p>  #mermaid-svg-GUt2ce4jZoP7CWCu {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu .error-icon{fill:#552222;}#mermaid-svg-GUt2ce4jZoP7CWCu .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GUt2ce4jZoP7CWCu .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-GUt2ce4jZoP7CWCu .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GUt2ce4jZoP7CWCu .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GUt2ce4jZoP7CWCu .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GUt2ce4jZoP7CWCu .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GUt2ce4jZoP7CWCu .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GUt2ce4jZoP7CWCu .marker.cross{stroke:#333333;}#mermaid-svg-GUt2ce4jZoP7CWCu svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GUt2ce4jZoP7CWCu .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu .cluster-label text{fill:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu .cluster-label span{color:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu .label text,#mermaid-svg-GUt2ce4jZoP7CWCu span{fill:#333;color:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu .node rect,#mermaid-svg-GUt2ce4jZoP7CWCu .node circle,#mermaid-svg-GUt2ce4jZoP7CWCu .node ellipse,#mermaid-svg-GUt2ce4jZoP7CWCu .node polygon,#mermaid-svg-GUt2ce4jZoP7CWCu .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GUt2ce4jZoP7CWCu .node .label{text-align:center;}#mermaid-svg-GUt2ce4jZoP7CWCu .node.clickable{cursor:pointer;}#mermaid-svg-GUt2ce4jZoP7CWCu .arrowheadPath{fill:#333333;}#mermaid-svg-GUt2ce4jZoP7CWCu .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GUt2ce4jZoP7CWCu .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GUt2ce4jZoP7CWCu .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-GUt2ce4jZoP7CWCu .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-GUt2ce4jZoP7CWCu .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GUt2ce4jZoP7CWCu .cluster text{fill:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu .cluster span{color:#333;}#mermaid-svg-GUt2ce4jZoP7CWCu div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GUt2ce4jZoP7CWCu :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-F\" class=\"edgeLabel L-LS-B&#039; L-LE-F\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-G\" class=\"edgeLabel L-LS-C&#039; L-LE-G\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-H\" class=\"edgeLabel L-LS-D&#039; L-LE-H\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-I\" class=\"edgeLabel L-LS-E&#039; L-LE-I\"><\/span> <\/p>\n<p>         <span id=\"L-L-F-J\" class=\"edgeLabel L-LS-F&#039; L-LE-J\"><\/span> <\/p>\n<p>         <span id=\"L-L-G-J\" class=\"edgeLabel L-LS-G&#039; L-LE-J\"><\/span> <\/p>\n<p>         <span id=\"L-L-H-J\" class=\"edgeLabel L-LS-H&#039; L-LE-J\"><\/span> <\/p>\n<p>         <span id=\"L-L-I-J\" class=\"edgeLabel L-LS-I&#039; L-LE-J\"><\/span> <\/p>\n<p>           \u76d1\u63a7\u6311\u6218 <\/p>\n<p>           \u6570\u636e\u91cf\u5e9e\u5927 <\/p>\n<p>           \u5b9e\u65f6\u6027\u8981\u6c42\u9ad8 <\/p>\n<p>           \u591a\u7ef4\u5ea6\u76d1\u63a7 <\/p>\n<p>           \u544a\u8b66\u7cbe\u51c6\u6027 <\/p>\n<p>           \u91c7\u6837\u7b56\u7565\u4f18\u5316 <\/p>\n<p>           \u6d41\u5f0f\u5904\u7406\u6280\u672f <\/p>\n<p>           \u7edf\u4e00\u76d1\u63a7\u5e73\u53f0 <\/p>\n<p>           \u667a\u80fd\u544a\u8b66\u7b97\u6cd5 <\/p>\n<p>           \u9ad8\u6548\u76d1\u63a7\u89e3\u51b3\u65b9\u6848 <\/p>\n<hr \/>\n<h3>2. SQL Server \u76d1\u63a7\u57fa\u7840\u67b6\u6784<\/h3>\n<h4>2.1 \u76d1\u63a7\u67b6\u6784\u6982\u89c8<\/h4>\n<p>\u4e00\u4e2a\u5b8c\u6574\u7684SQL Server\u76d1\u63a7\u7cfb\u7edf\u5e94\u8be5\u5305\u542b\u6570\u636e\u6536\u96c6\u3001\u5b58\u50a8\u3001\u5206\u6790\u548c\u5c55\u793a\u56db\u4e2a\u6838\u5fc3\u5c42\u6b21&#xff1a;<\/p>\n<p>  #mermaid-svg-Rr6bR3RZQhezg1qZ {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .error-icon{fill:#552222;}#mermaid-svg-Rr6bR3RZQhezg1qZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Rr6bR3RZQhezg1qZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .marker.cross{stroke:#333333;}#mermaid-svg-Rr6bR3RZQhezg1qZ svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Rr6bR3RZQhezg1qZ .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .cluster-label text{fill:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .cluster-label span{color:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .label text,#mermaid-svg-Rr6bR3RZQhezg1qZ span{fill:#333;color:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .node rect,#mermaid-svg-Rr6bR3RZQhezg1qZ .node circle,#mermaid-svg-Rr6bR3RZQhezg1qZ .node ellipse,#mermaid-svg-Rr6bR3RZQhezg1qZ .node polygon,#mermaid-svg-Rr6bR3RZQhezg1qZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Rr6bR3RZQhezg1qZ .node .label{text-align:center;}#mermaid-svg-Rr6bR3RZQhezg1qZ .node.clickable{cursor:pointer;}#mermaid-svg-Rr6bR3RZQhezg1qZ .arrowheadPath{fill:#333333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Rr6bR3RZQhezg1qZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Rr6bR3RZQhezg1qZ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Rr6bR3RZQhezg1qZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Rr6bR3RZQhezg1qZ .cluster text{fill:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ .cluster span{color:#333;}#mermaid-svg-Rr6bR3RZQhezg1qZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Rr6bR3RZQhezg1qZ :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>           \u5c55\u793a\u5206\u6790\u5c42 <\/p>\n<p>           \u6570\u636e\u5904\u7406\u5c42 <\/p>\n<p>           \u6570\u636e\u6536\u96c6\u5c42 <\/p>\n<p>           \u6570\u636e\u6e90\u5c42 <\/p>\n<p>         <span id=\"L-L-A1-B1\" class=\"edgeLabel L-LS-A1&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-A2-B3\" class=\"edgeLabel L-LS-A2&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-A3-B2\" class=\"edgeLabel L-LS-A3&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-A4-B4\" class=\"edgeLabel L-LS-A4&#039; L-LE-B4\"><\/span> <\/p>\n<p>         <span id=\"L-L-B1-C1\" class=\"edgeLabel L-LS-B1&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B2-C2\" class=\"edgeLabel L-LS-B2&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B3-C3\" class=\"edgeLabel L-LS-B3&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-B4-C4\" class=\"edgeLabel L-LS-B4&#039; L-LE-C4\"><\/span> <\/p>\n<p>         <span id=\"L-L-C1-D1\" class=\"edgeLabel L-LS-C1&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C2-D2\" class=\"edgeLabel L-LS-C2&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C3-D3\" class=\"edgeLabel L-LS-C3&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C4-D4\" class=\"edgeLabel L-LS-C4&#039; L-LE-D4\"><\/span> <\/p>\n<p>           \u5b9e\u65f6\u4eea\u8868\u677f <\/p>\n<p>           \u5386\u53f2\u62a5\u8868 <\/p>\n<p>           \u544a\u8b66\u901a\u77e5 <\/p>\n<p>           \u79fb\u52a8\u7aef\u76d1\u63a7 <\/p>\n<p>           \u6570\u636e\u6e05\u6d17 <\/p>\n<p>           \u805a\u5408\u8ba1\u7b97 <\/p>\n<p>           \u5f02\u5e38\u68c0\u6d4b <\/p>\n<p>           \u544a\u8b66\u5f15\u64ce <\/p>\n<p>           DMV\u67e5\u8be2 <\/p>\n<p>           \u6269\u5c55\u4e8b\u4ef6 <\/p>\n<p>           \u6027\u80fd\u76d1\u89c6\u5668 <\/p>\n<p>           PowerShell\u6536\u96c6\u5668 <\/p>\n<p>           SQL Server\u5b9e\u4f8b <\/p>\n<p>           Windows\u6027\u80fd\u8ba1\u6570\u5668 <\/p>\n<p>           \u4e8b\u4ef6\u65e5\u5fd7 <\/p>\n<p>           \u81ea\u5b9a\u4e49\u76d1\u63a7\u811a\u672c <\/p>\n<h4>2.2 \u6838\u5fc3\u76d1\u63a7\u6307\u6807\u4f53\u7cfb<\/h4>\n<h5>2.2.1 \u7cfb\u7edf\u7ea7\u6307\u6807<\/h5>\n<table>\n<tr>\u6307\u6807\u7c7b\u522b\u5173\u952e\u6307\u6807\u6b63\u5e38\u8303\u56f4\u544a\u8b66\u9608\u503c<\/tr>\n<tbody>\n<tr>\n<td>CPU\u4f7f\u7528\u7387<\/td>\n<td>%Processor Time<\/td>\n<td>&lt; 70%<\/td>\n<td>&gt; 80%<\/td>\n<\/tr>\n<tr>\n<td>\u5185\u5b58\u4f7f\u7528<\/td>\n<td>Available Memory<\/td>\n<td>&gt; 2GB<\/td>\n<td>&lt; 1GB<\/td>\n<\/tr>\n<tr>\n<td>\u78c1\u76d8I\/O<\/td>\n<td>Disk Queue Length<\/td>\n<td>&lt; 2<\/td>\n<td>&gt; 4<\/td>\n<\/tr>\n<tr>\n<td>\u7f51\u7edc<\/td>\n<td>Network Utilization<\/td>\n<td>&lt; 50%<\/td>\n<td>&gt; 80%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5>2.2.2 \u6570\u636e\u5e93\u7ea7\u6307\u6807<\/h5>\n<table>\n<tr>\u6307\u6807\u7c7b\u522b\u5173\u952e\u6307\u6807\u76d1\u63a7\u9891\u7387\u91cd\u8981\u7ea7\u522b<\/tr>\n<tbody>\n<tr>\n<td>\u8fde\u63a5\u6570<\/td>\n<td>User Connections<\/td>\n<td>\u5b9e\u65f6<\/td>\n<td>\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>\u9501\u7b49\u5f85<\/td>\n<td>Lock Waits\/sec<\/td>\n<td>\u5b9e\u65f6<\/td>\n<td>\u9ad8<\/td>\n<\/tr>\n<tr>\n<td>\u9875\u9762\u8bfb\u5199<\/td>\n<td>Page Reads\/sec<\/td>\n<td>1\u5206\u949f<\/td>\n<td>\u4e2d<\/td>\n<\/tr>\n<tr>\n<td>\u7f13\u51b2\u547d\u4e2d\u7387<\/td>\n<td>Buffer Cache Hit Ratio<\/td>\n<td>5\u5206\u949f<\/td>\n<td>\u4e2d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>3. \u6545\u969c\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790<\/h3>\n<h4>3.1 \u6545\u969c\u7c7b\u578b\u5206\u7c7b\u4e0e\u76d1\u6d4b\u7b56\u7565<\/h4>\n<p>  #mermaid-svg-S2rjTF0CLhF4AaEf {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf .error-icon{fill:#552222;}#mermaid-svg-S2rjTF0CLhF4AaEf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-S2rjTF0CLhF4AaEf .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-S2rjTF0CLhF4AaEf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-S2rjTF0CLhF4AaEf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-S2rjTF0CLhF4AaEf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-S2rjTF0CLhF4AaEf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-S2rjTF0CLhF4AaEf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-S2rjTF0CLhF4AaEf .marker.cross{stroke:#333333;}#mermaid-svg-S2rjTF0CLhF4AaEf svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-S2rjTF0CLhF4AaEf .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf .cluster-label text{fill:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf .cluster-label span{color:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf .label text,#mermaid-svg-S2rjTF0CLhF4AaEf span{fill:#333;color:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf .node rect,#mermaid-svg-S2rjTF0CLhF4AaEf .node circle,#mermaid-svg-S2rjTF0CLhF4AaEf .node ellipse,#mermaid-svg-S2rjTF0CLhF4AaEf .node polygon,#mermaid-svg-S2rjTF0CLhF4AaEf .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-S2rjTF0CLhF4AaEf .node .label{text-align:center;}#mermaid-svg-S2rjTF0CLhF4AaEf .node.clickable{cursor:pointer;}#mermaid-svg-S2rjTF0CLhF4AaEf .arrowheadPath{fill:#333333;}#mermaid-svg-S2rjTF0CLhF4AaEf .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-S2rjTF0CLhF4AaEf .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-S2rjTF0CLhF4AaEf .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-S2rjTF0CLhF4AaEf .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-S2rjTF0CLhF4AaEf .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-S2rjTF0CLhF4AaEf .cluster text{fill:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf .cluster span{color:#333;}#mermaid-svg-S2rjTF0CLhF4AaEf div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-S2rjTF0CLhF4AaEf :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D3\" class=\"edgeLabel L-LS-D&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E1\" class=\"edgeLabel L-LS-E&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E2\" class=\"edgeLabel L-LS-E&#039; L-LE-E2\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E3\" class=\"edgeLabel L-LS-E&#039; L-LE-E3\"><\/span> <\/p>\n<p>           SQL Server\u6545\u969c <\/p>\n<p>           \u786c\u4ef6\u6545\u969c <\/p>\n<p>           \u8f6f\u4ef6\u6545\u969c <\/p>\n<p>           \u7f51\u7edc\u6545\u969c <\/p>\n<p>           \u4eba\u4e3a\u6545\u969c <\/p>\n<p>           \u78c1\u76d8\u6545\u969c <\/p>\n<p>           \u5185\u5b58\u6545\u969c <\/p>\n<p>           CPU\u6545\u969c <\/p>\n<p>           \u6570\u636e\u5e93\u635f\u574f <\/p>\n<p>           \u670d\u52a1\u5f02\u5e38 <\/p>\n<p>           \u914d\u7f6e\u9519\u8bef <\/p>\n<p>           \u8fde\u63a5\u8d85\u65f6 <\/p>\n<p>           \u7f51\u7edc\u4e2d\u65ad <\/p>\n<p>           \u5e26\u5bbd\u4e0d\u8db3 <\/p>\n<p>           \u8bef\u64cd\u4f5c <\/p>\n<p>           \u6743\u9650\u914d\u7f6e <\/p>\n<p>           \u7ef4\u62a4\u9519\u8bef <\/p>\n<h4>3.2 \u6269\u5c55\u4e8b\u4ef6(Extended Events)\u76d1\u63a7<\/h4>\n<p>\u6269\u5c55\u4e8b\u4ef6\u662fSQL Server 2008\u4ee5\u540e\u7248\u672c\u63d0\u4f9b\u7684\u8f7b\u91cf\u7ea7\u76d1\u63a7\u6846\u67b6&#xff0c;\u76f8\u6bd4SQL Trace\u5177\u6709\u66f4\u4f4e\u7684\u6027\u80fd\u5f00\u9500\u3002<\/p>\n<h5>3.2.1 \u521b\u5efa\u6545\u969c\u76d1\u63a7\u4f1a\u8bdd<\/h5>\n<p><span class=\"token comment\">&#8212; \u521b\u5efa\u6b7b\u9501\u76d1\u63a7\u4f1a\u8bdd<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> EVENT <span class=\"token keyword\">SESSION<\/span> <span class=\"token punctuation\">[<\/span>DeadlockMonitor<span class=\"token punctuation\">]<\/span> <span class=\"token keyword\">ON<\/span> SERVER<br \/>\n<span class=\"token keyword\">ADD<\/span> EVENT sqlserver<span class=\"token punctuation\">.<\/span>xml_deadlock_report<span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token keyword\">ACTION<\/span><span class=\"token punctuation\">(<\/span>sqlserver<span class=\"token punctuation\">.<\/span>client_app_name<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>database_id<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>username<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token keyword\">ADD<\/span> EVENT sqlserver<span class=\"token punctuation\">.<\/span>lock_deadlock_chain<span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token keyword\">ACTION<\/span><span class=\"token punctuation\">(<\/span>sqlserver<span class=\"token punctuation\">.<\/span>client_app_name<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>database_id<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>username<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">ADD<\/span> TARGET package0<span class=\"token punctuation\">.<\/span>event_file<span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token keyword\">SET<\/span> filename<span class=\"token operator\">&#061;<\/span>N<span class=\"token string\">&#039;D:\\\\Logs\\\\DeadlockMonitor.xel&#039;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        max_file_size<span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        max_rollover_files<span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">WITH<\/span> <span class=\"token punctuation\">(<\/span>MAX_MEMORY<span class=\"token operator\">&#061;<\/span><span class=\"token number\">4096<\/span> KB<span class=\"token punctuation\">,<\/span><br \/>\n      EVENT_RETENTION_MODE<span class=\"token operator\">&#061;<\/span>ALLOW_SINGLE_EVENT_LOSS<span class=\"token punctuation\">,<\/span><br \/>\n      MAX_DISPATCH_LATENCY<span class=\"token operator\">&#061;<\/span><span class=\"token number\">30<\/span> SECONDS<span class=\"token punctuation\">,<\/span><br \/>\n      MAX_EVENT_SIZE<span class=\"token operator\">&#061;<\/span><span class=\"token number\">0<\/span> KB<span class=\"token punctuation\">,<\/span><br \/>\n      MEMORY_PARTITION_MODE<span class=\"token operator\">&#061;<\/span>NONE<span class=\"token punctuation\">,<\/span><br \/>\n      TRACK_CAUSALITY<span class=\"token operator\">&#061;<\/span><span class=\"token keyword\">OFF<\/span><span class=\"token punctuation\">,<\/span><br \/>\n      STARTUP_STATE<span class=\"token operator\">&#061;<\/span><span class=\"token keyword\">ON<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">&#8212; \u542f\u52a8\u4f1a\u8bdd<\/span><br \/>\n<span class=\"token keyword\">ALTER<\/span> EVENT <span class=\"token keyword\">SESSION<\/span> <span class=\"token punctuation\">[<\/span>DeadlockMonitor<span class=\"token punctuation\">]<\/span> <span class=\"token keyword\">ON<\/span> SERVER STATE <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">START<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h5>3.2.2 \u963b\u585e\u76d1\u63a7\u4f1a\u8bdd<\/h5>\n<p><span class=\"token comment\">&#8212; \u521b\u5efa\u963b\u585e\u76d1\u63a7\u4f1a\u8bdd<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> EVENT <span class=\"token keyword\">SESSION<\/span> <span class=\"token punctuation\">[<\/span>BlockingMonitor<span class=\"token punctuation\">]<\/span> <span class=\"token keyword\">ON<\/span> SERVER<br \/>\n<span class=\"token keyword\">ADD<\/span> EVENT sqlserver<span class=\"token punctuation\">.<\/span>blocked_process_report<span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token keyword\">ACTION<\/span><span class=\"token punctuation\">(<\/span>sqlserver<span class=\"token punctuation\">.<\/span>client_app_name<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>database_id<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>sql_text<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>username<span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">WHERE<\/span> duration <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">5000<\/span>  <span class=\"token comment\">&#8212; \u963b\u585e\u8d85\u8fc75\u79d2<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token keyword\">ADD<\/span> EVENT sqlserver<span class=\"token punctuation\">.<\/span>lock_timeout<span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token keyword\">ACTION<\/span><span class=\"token punctuation\">(<\/span>sqlserver<span class=\"token punctuation\">.<\/span>client_app_name<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>database_id<span class=\"token punctuation\">,<\/span><br \/>\n           sqlserver<span class=\"token punctuation\">.<\/span>sql_text<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">ADD<\/span> TARGET package0<span class=\"token punctuation\">.<\/span>ring_buffer<span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token keyword\">SET<\/span> max_memory <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">8192<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>3.3 Always On\u53ef\u7528\u6027\u7ec4\u76d1\u63a7<\/h4>\n<p>  #mermaid-svg-CKBSnOH3ctT11Qhl {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl .error-icon{fill:#552222;}#mermaid-svg-CKBSnOH3ctT11Qhl .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CKBSnOH3ctT11Qhl .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-CKBSnOH3ctT11Qhl .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CKBSnOH3ctT11Qhl .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CKBSnOH3ctT11Qhl .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CKBSnOH3ctT11Qhl .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CKBSnOH3ctT11Qhl .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CKBSnOH3ctT11Qhl .marker.cross{stroke:#333333;}#mermaid-svg-CKBSnOH3ctT11Qhl svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CKBSnOH3ctT11Qhl .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl .cluster-label text{fill:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl .cluster-label span{color:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl .label text,#mermaid-svg-CKBSnOH3ctT11Qhl span{fill:#333;color:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl .node rect,#mermaid-svg-CKBSnOH3ctT11Qhl .node circle,#mermaid-svg-CKBSnOH3ctT11Qhl .node ellipse,#mermaid-svg-CKBSnOH3ctT11Qhl .node polygon,#mermaid-svg-CKBSnOH3ctT11Qhl .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CKBSnOH3ctT11Qhl .node .label{text-align:center;}#mermaid-svg-CKBSnOH3ctT11Qhl .node.clickable{cursor:pointer;}#mermaid-svg-CKBSnOH3ctT11Qhl .arrowheadPath{fill:#333333;}#mermaid-svg-CKBSnOH3ctT11Qhl .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CKBSnOH3ctT11Qhl .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CKBSnOH3ctT11Qhl .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-CKBSnOH3ctT11Qhl .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-CKBSnOH3ctT11Qhl .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CKBSnOH3ctT11Qhl .cluster text{fill:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl .cluster span{color:#333;}#mermaid-svg-CKBSnOH3ctT11Qhl div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CKBSnOH3ctT11Qhl :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D3\" class=\"edgeLabel L-LS-D&#039; L-LE-D3\"><\/span> <\/p>\n<p>           Always On\u76d1\u63a7 <\/p>\n<p>           \u4e3b\u526f\u672c\u76d1\u63a7 <\/p>\n<p>           \u8f85\u52a9\u526f\u672c\u76d1\u63a7 <\/p>\n<p>           \u6570\u636e\u540c\u6b65\u76d1\u63a7 <\/p>\n<p>           \u4e3b\u526f\u672c\u5065\u5eb7\u72b6\u6001 <\/p>\n<p>           \u65e5\u5fd7\u751f\u6210\u901f\u5ea6 <\/p>\n<p>           \u672a\u53d1\u9001\u65e5\u5fd7\u5927\u5c0f <\/p>\n<p>           \u526f\u672c\u8fde\u63a5\u72b6\u6001 <\/p>\n<p>           \u6570\u636e\u540c\u6b65\u72b6\u6001 <\/p>\n<p>           \u6545\u969c\u8f6c\u79fb\u5c31\u7eea\u72b6\u6001 <\/p>\n<p>           \u53d1\u9001\u961f\u5217\u5927\u5c0f <\/p>\n<p>           \u91cd\u505a\u961f\u5217\u5927\u5c0f <\/p>\n<p>           \u6570\u636e\u4e22\u5931\u65f6\u95f4 <\/p>\n<h5>3.3.1 \u53ef\u7528\u6027\u7ec4\u5065\u5eb7\u68c0\u67e5\u811a\u672c<\/h5>\n<p><span class=\"token comment\">&#8212; Always On\u53ef\u7528\u6027\u7ec4\u72b6\u6001\u76d1\u63a7<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span><br \/>\n    ag<span class=\"token punctuation\">.<\/span>name <span class=\"token keyword\">AS<\/span> AvailabilityGroup<span class=\"token punctuation\">,<\/span><br \/>\n    r<span class=\"token punctuation\">.<\/span>replica_server_name <span class=\"token keyword\">AS<\/span> ServerName<span class=\"token punctuation\">,<\/span><br \/>\n    r<span class=\"token punctuation\">.<\/span>availability_mode_desc <span class=\"token keyword\">AS<\/span> AvailabilityMode<span class=\"token punctuation\">,<\/span><br \/>\n    r<span class=\"token punctuation\">.<\/span>failover_mode_desc <span class=\"token keyword\">AS<\/span> FailoverMode<span class=\"token punctuation\">,<\/span><br \/>\n    rs<span class=\"token punctuation\">.<\/span>role_desc <span class=\"token keyword\">AS<\/span> ReplicaRole<span class=\"token punctuation\">,<\/span><br \/>\n    rs<span class=\"token punctuation\">.<\/span>connected_state_desc <span class=\"token keyword\">AS<\/span> ConnectionState<span class=\"token punctuation\">,<\/span><br \/>\n    rs<span class=\"token punctuation\">.<\/span>synchronization_health_desc <span class=\"token keyword\">AS<\/span> SyncHealth<span class=\"token punctuation\">,<\/span><br \/>\n    drs<span class=\"token punctuation\">.<\/span>database_name <span class=\"token keyword\">AS<\/span> DatabaseName<span class=\"token punctuation\">,<\/span><br \/>\n    drs<span class=\"token punctuation\">.<\/span>synchronization_state_desc <span class=\"token keyword\">AS<\/span> SyncState<span class=\"token punctuation\">,<\/span><br \/>\n    drs<span class=\"token punctuation\">.<\/span>log_send_queue_size <span class=\"token keyword\">AS<\/span> LogSendQueueKB<span class=\"token punctuation\">,<\/span><br \/>\n    drs<span class=\"token punctuation\">.<\/span>redo_queue_size <span class=\"token keyword\">AS<\/span> RedoQueueKB<span class=\"token punctuation\">,<\/span><br \/>\n    drs<span class=\"token punctuation\">.<\/span>last_commit_time <span class=\"token keyword\">AS<\/span> LastCommitTime<br \/>\n<span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>availability_groups ag<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>availability_replicas r <span class=\"token keyword\">ON<\/span> ag<span class=\"token punctuation\">.<\/span>group_id <span class=\"token operator\">&#061;<\/span> r<span class=\"token punctuation\">.<\/span>group_id<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>dm_hadr_availability_replica_states rs <span class=\"token keyword\">ON<\/span> r<span class=\"token punctuation\">.<\/span>replica_id <span class=\"token operator\">&#061;<\/span> rs<span class=\"token punctuation\">.<\/span>replica_id<br \/>\n<span class=\"token keyword\">LEFT<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>dm_hadr_database_replica_states drs <span class=\"token keyword\">ON<\/span> rs<span class=\"token punctuation\">.<\/span>replica_id <span class=\"token operator\">&#061;<\/span> drs<span class=\"token punctuation\">.<\/span>replica_id<br \/>\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> ag<span class=\"token punctuation\">.<\/span>name<span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">.<\/span>replica_server_name<span class=\"token punctuation\">,<\/span> drs<span class=\"token punctuation\">.<\/span>database_name<span class=\"token punctuation\">;<\/span><\/p>\n<hr \/>\n<h3>4. \u6027\u80fd\u76d1\u63a7\u6838\u5fc3\u6280\u672f<\/h3>\n<h4>4.1 \u67e5\u8be2\u6027\u80fd\u76d1\u63a7\u4f53\u7cfb<\/h4>\n<p>  #mermaid-svg-S4OidMiWNcWWo60F {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-S4OidMiWNcWWo60F .error-icon{fill:#552222;}#mermaid-svg-S4OidMiWNcWWo60F .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-S4OidMiWNcWWo60F .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-S4OidMiWNcWWo60F .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-S4OidMiWNcWWo60F .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-S4OidMiWNcWWo60F .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-S4OidMiWNcWWo60F .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-S4OidMiWNcWWo60F .marker{fill:#333333;stroke:#333333;}#mermaid-svg-S4OidMiWNcWWo60F .marker.cross{stroke:#333333;}#mermaid-svg-S4OidMiWNcWWo60F svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-S4OidMiWNcWWo60F .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-S4OidMiWNcWWo60F .cluster-label text{fill:#333;}#mermaid-svg-S4OidMiWNcWWo60F .cluster-label span{color:#333;}#mermaid-svg-S4OidMiWNcWWo60F .label text,#mermaid-svg-S4OidMiWNcWWo60F span{fill:#333;color:#333;}#mermaid-svg-S4OidMiWNcWWo60F .node rect,#mermaid-svg-S4OidMiWNcWWo60F .node circle,#mermaid-svg-S4OidMiWNcWWo60F .node ellipse,#mermaid-svg-S4OidMiWNcWWo60F .node polygon,#mermaid-svg-S4OidMiWNcWWo60F .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-S4OidMiWNcWWo60F .node .label{text-align:center;}#mermaid-svg-S4OidMiWNcWWo60F .node.clickable{cursor:pointer;}#mermaid-svg-S4OidMiWNcWWo60F .arrowheadPath{fill:#333333;}#mermaid-svg-S4OidMiWNcWWo60F .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-S4OidMiWNcWWo60F .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-S4OidMiWNcWWo60F .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-S4OidMiWNcWWo60F .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-S4OidMiWNcWWo60F .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-S4OidMiWNcWWo60F .cluster text{fill:#333;}#mermaid-svg-S4OidMiWNcWWo60F .cluster span{color:#333;}#mermaid-svg-S4OidMiWNcWWo60F div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-S4OidMiWNcWWo60F :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D3\" class=\"edgeLabel L-LS-D&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E1\" class=\"edgeLabel L-LS-E&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E2\" class=\"edgeLabel L-LS-E&#039; L-LE-E2\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E3\" class=\"edgeLabel L-LS-E&#039; L-LE-E3\"><\/span> <\/p>\n<p>           \u67e5\u8be2\u6027\u80fd\u76d1\u63a7 <\/p>\n<p>           \u6267\u884c\u8ba1\u5212\u5206\u6790 <\/p>\n<p>           \u7b49\u5f85\u7edf\u8ba1\u5206\u6790 <\/p>\n<p>           I\/O\u7edf\u8ba1\u5206\u6790 <\/p>\n<p>           \u8d44\u6e90\u6d88\u8017\u5206\u6790 <\/p>\n<p>           \u7d22\u5f15\u4f7f\u7528\u60c5\u51b5 <\/p>\n<p>           \u64cd\u4f5c\u7b26\u6210\u672c <\/p>\n<p>           \u5e76\u884c\u5ea6\u5206\u6790 <\/p>\n<p>           \u9501\u7b49\u5f85 <\/p>\n<p>           I\/O\u7b49\u5f85 <\/p>\n<p>           CPU\u7b49\u5f85 <\/p>\n<p>           \u903b\u8f91\u8bfb\u53d6 <\/p>\n<p>           \u7269\u7406\u8bfb\u53d6 <\/p>\n<p>           \u9875\u9762\u5206\u5272 <\/p>\n<p>           CPU\u65f6\u95f4 <\/p>\n<p>           \u6267\u884c\u65f6\u95f4 <\/p>\n<p>           \u5185\u5b58\u6388\u6743 <\/p>\n<h5>4.1.1 \u67e5\u8be2\u5b58\u50a8(Query Store)\u914d\u7f6e<\/h5>\n<p><span class=\"token comment\">&#8212; \u542f\u7528\u67e5\u8be2\u5b58\u50a8<\/span><br \/>\n<span class=\"token keyword\">ALTER<\/span> <span class=\"token keyword\">DATABASE<\/span> <span class=\"token punctuation\">[<\/span>YourDatabase<span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token keyword\">SET<\/span> QUERY_STORE <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">ON<\/span> <span class=\"token punctuation\">(<\/span><br \/>\n    OPERATION_MODE <span class=\"token operator\">&#061;<\/span> READ_WRITE<span class=\"token punctuation\">,<\/span><br \/>\n    CLEANUP_POLICY <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>STALE_QUERY_THRESHOLD_DAYS <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    DATA_FLUSH_INTERVAL_SECONDS <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">900<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    INTERVAL_LENGTH_MINUTES <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">60<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    MAX_STORAGE_SIZE_MB <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1024<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    QUERY_CAPTURE_MODE <span class=\"token operator\">&#061;<\/span> AUTO<span class=\"token punctuation\">,<\/span><br \/>\n    SIZE_BASED_CLEANUP_MODE <span class=\"token operator\">&#061;<\/span> AUTO<br \/>\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">&#8212; \u67e5\u8be2\u6027\u80fd\u56de\u9000\u7684SQL<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span><br \/>\n    qsq<span class=\"token punctuation\">.<\/span>query_id<span class=\"token punctuation\">,<\/span><br \/>\n    qsqt<span class=\"token punctuation\">.<\/span>query_sql_text<span class=\"token punctuation\">,<\/span><br \/>\n    qsrs<span class=\"token punctuation\">.<\/span>count_executions<span class=\"token punctuation\">,<\/span><br \/>\n    qsrs<span class=\"token punctuation\">.<\/span>avg_duration <span class=\"token operator\">\/<\/span> <span class=\"token number\">1000<\/span> <span class=\"token keyword\">AS<\/span> avg_duration_ms<span class=\"token punctuation\">,<\/span><br \/>\n    qsrs<span class=\"token punctuation\">.<\/span>avg_cpu_time <span class=\"token operator\">\/<\/span> <span class=\"token number\">1000<\/span> <span class=\"token keyword\">AS<\/span> avg_cpu_time_ms<span class=\"token punctuation\">,<\/span><br \/>\n    qsrs<span class=\"token punctuation\">.<\/span>avg_logical_io_reads<span class=\"token punctuation\">,<\/span><br \/>\n    qsrs<span class=\"token punctuation\">.<\/span>avg_physical_io_reads<br \/>\n<span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>query_store_query qsq<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>query_store_query_text qsqt <span class=\"token keyword\">ON<\/span> qsq<span class=\"token punctuation\">.<\/span>query_text_id <span class=\"token operator\">&#061;<\/span> qsqt<span class=\"token punctuation\">.<\/span>query_text_id<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>query_store_plan qsp <span class=\"token keyword\">ON<\/span> qsq<span class=\"token punctuation\">.<\/span>query_id <span class=\"token operator\">&#061;<\/span> qsp<span class=\"token punctuation\">.<\/span>query_id<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>query_store_runtime_stats qsrs <span class=\"token keyword\">ON<\/span> qsp<span class=\"token punctuation\">.<\/span>plan_id <span class=\"token operator\">&#061;<\/span> qsrs<span class=\"token punctuation\">.<\/span>plan_id<br \/>\n<span class=\"token keyword\">WHERE<\/span> qsrs<span class=\"token punctuation\">.<\/span>last_execution_time <span class=\"token operator\">&gt;&#061;<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">day<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">,<\/span> GETUTCDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n  <span class=\"token operator\">AND<\/span> qsrs<span class=\"token punctuation\">.<\/span>avg_duration <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">10000<\/span>  <span class=\"token comment\">&#8212; \u5e73\u5747\u6267\u884c\u65f6\u95f4\u8d85\u8fc710\u79d2<\/span><br \/>\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> qsrs<span class=\"token punctuation\">.<\/span>avg_duration <span class=\"token keyword\">DESC<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>4.2 \u7d22\u5f15\u6027\u80fd\u76d1\u63a7<\/h4>\n<h5>4.2.1 \u7f3a\u5931\u7d22\u5f15\u5206\u6790<\/h5>\n<p><span class=\"token comment\">&#8212; \u5206\u6790\u7f3a\u5931\u7d22\u5f15\u5efa\u8bae<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span><br \/>\n    migs<span class=\"token punctuation\">.<\/span>avg_total_user_cost <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>migs<span class=\"token punctuation\">.<\/span>avg_user_impact <span class=\"token operator\">\/<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>migs<span class=\"token punctuation\">.<\/span>user_seeks <span class=\"token operator\">&#043;<\/span> migs<span class=\"token punctuation\">.<\/span>user_scans<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> improvement_measure<span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#039;CREATE INDEX [IX_&#039;<\/span> <span class=\"token operator\">&#043;<\/span> OBJECT_NAME<span class=\"token punctuation\">(<\/span>mid<span class=\"token punctuation\">.<\/span>object_id<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token string\">&#039;_&#039;<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n    <span class=\"token keyword\">REPLACE<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">REPLACE<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">REPLACE<\/span><span class=\"token punctuation\">(<\/span>ISNULL<span class=\"token punctuation\">(<\/span>mid<span class=\"token punctuation\">.<\/span>equality_columns<span class=\"token punctuation\">,<\/span><span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;, &#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;_&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;[&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;]&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n    <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> mid<span class=\"token punctuation\">.<\/span>inequality_columns <span class=\"token operator\">IS<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;_&#039;<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n         <span class=\"token keyword\">REPLACE<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">REPLACE<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">REPLACE<\/span><span class=\"token punctuation\">(<\/span>mid<span class=\"token punctuation\">.<\/span>inequality_columns<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;, &#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;_&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;[&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;]&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n         <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;&#039;<\/span> <span class=\"token keyword\">END<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token string\">&#039;]&#039;<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n    <span class=\"token string\">&#039; ON &#039;<\/span> <span class=\"token operator\">&#043;<\/span> mid<span class=\"token punctuation\">.<\/span>statement <span class=\"token operator\">&#043;<\/span><br \/>\n    <span class=\"token string\">&#039; (&#039;<\/span> <span class=\"token operator\">&#043;<\/span> ISNULL <span class=\"token punctuation\">(<\/span>mid<span class=\"token punctuation\">.<\/span>equality_columns<span class=\"token punctuation\">,<\/span><span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n    <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> mid<span class=\"token punctuation\">.<\/span>equality_columns <span class=\"token operator\">IS<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span> <span class=\"token operator\">AND<\/span> mid<span class=\"token punctuation\">.<\/span>inequality_columns <span class=\"token operator\">IS<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;,&#039;<\/span> <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;&#039;<\/span> <span class=\"token keyword\">END<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n    ISNULL <span class=\"token punctuation\">(<\/span>mid<span class=\"token punctuation\">.<\/span>inequality_columns<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token string\">&#039;)&#039;<\/span> <span class=\"token operator\">&#043;<\/span><br \/>\n    ISNULL <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039; INCLUDE (&#039;<\/span> <span class=\"token operator\">&#043;<\/span> mid<span class=\"token punctuation\">.<\/span>included_columns <span class=\"token operator\">&#043;<\/span> <span class=\"token string\">&#039;)&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#039;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> create_index_statement<span class=\"token punctuation\">,<\/span><br \/>\n    migs<span class=\"token punctuation\">.<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">.<\/span>database_id<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">[<\/span>object_id<span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>dm_db_missing_index_groups mig<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>dm_db_missing_index_group_stats migs <span class=\"token keyword\">ON<\/span> migs<span class=\"token punctuation\">.<\/span>group_handle <span class=\"token operator\">&#061;<\/span> mig<span class=\"token punctuation\">.<\/span>index_group_handle<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>dm_db_missing_index_details mid <span class=\"token keyword\">ON<\/span> mig<span class=\"token punctuation\">.<\/span>index_handle <span class=\"token operator\">&#061;<\/span> mid<span class=\"token punctuation\">.<\/span>index_handle<br \/>\n<span class=\"token keyword\">WHERE<\/span> migs<span class=\"token punctuation\">.<\/span>avg_total_user_cost <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>migs<span class=\"token punctuation\">.<\/span>avg_user_impact <span class=\"token operator\">\/<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>migs<span class=\"token punctuation\">.<\/span>user_seeks <span class=\"token operator\">&#043;<\/span> migs<span class=\"token punctuation\">.<\/span>user_scans<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">10<\/span><br \/>\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> migs<span class=\"token punctuation\">.<\/span>avg_total_user_cost <span class=\"token operator\">*<\/span> migs<span class=\"token punctuation\">.<\/span>avg_user_impact <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>migs<span class=\"token punctuation\">.<\/span>user_seeks <span class=\"token operator\">&#043;<\/span> migs<span class=\"token punctuation\">.<\/span>user_scans<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">DESC<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h5>4.2.2 \u7d22\u5f15\u788e\u7247\u76d1\u63a7<\/h5>\n<p><span class=\"token comment\">&#8212; \u7d22\u5f15\u788e\u7247\u5206\u6790<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span><br \/>\n    OBJECT_SCHEMA_NAME<span class=\"token punctuation\">(<\/span>ips<span class=\"token punctuation\">.<\/span>object_id<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> schema_name<span class=\"token punctuation\">,<\/span><br \/>\n    OBJECT_NAME<span class=\"token punctuation\">(<\/span>ips<span class=\"token punctuation\">.<\/span>object_id<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> object_name<span class=\"token punctuation\">,<\/span><br \/>\n    i<span class=\"token punctuation\">.<\/span>name <span class=\"token keyword\">AS<\/span> index_name<span class=\"token punctuation\">,<\/span><br \/>\n    ips<span class=\"token punctuation\">.<\/span>index_type_desc<span class=\"token punctuation\">,<\/span><br \/>\n    ips<span class=\"token punctuation\">.<\/span>avg_fragmentation_in_percent<span class=\"token punctuation\">,<\/span><br \/>\n    ips<span class=\"token punctuation\">.<\/span>page_count<span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token keyword\">CASE<\/span><br \/>\n        <span class=\"token keyword\">WHEN<\/span> ips<span class=\"token punctuation\">.<\/span>avg_fragmentation_in_percent <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">30<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;REBUILD&#039;<\/span><br \/>\n        <span class=\"token keyword\">WHEN<\/span> ips<span class=\"token punctuation\">.<\/span>avg_fragmentation_in_percent <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">10<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;REORGANIZE&#039;<\/span><br \/>\n        <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;NO ACTION&#039;<\/span><br \/>\n    <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">AS<\/span> recommended_action<br \/>\n<span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>dm_db_index_physical_stats<span class=\"token punctuation\">(<\/span>DB_ID<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">NULL<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">NULL<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">NULL<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;LIMITED&#039;<\/span><span class=\"token punctuation\">)<\/span> ips<br \/>\n<span class=\"token keyword\">INNER<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>indexes i <span class=\"token keyword\">ON<\/span> ips<span class=\"token punctuation\">.<\/span>object_id <span class=\"token operator\">&#061;<\/span> i<span class=\"token punctuation\">.<\/span>object_id <span class=\"token operator\">AND<\/span> ips<span class=\"token punctuation\">.<\/span>index_id <span class=\"token operator\">&#061;<\/span> i<span class=\"token punctuation\">.<\/span>index_id<br \/>\n<span class=\"token keyword\">WHERE<\/span> ips<span class=\"token punctuation\">.<\/span>avg_fragmentation_in_percent <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">10<\/span><br \/>\n  <span class=\"token operator\">AND<\/span> ips<span class=\"token punctuation\">.<\/span>page_count <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">1000<\/span>  <span class=\"token comment\">&#8212; \u53ea\u5173\u6ce8\u5927\u4e8e1000\u9875\u7684\u7d22\u5f15<\/span><br \/>\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> ips<span class=\"token punctuation\">.<\/span>avg_fragmentation_in_percent <span class=\"token keyword\">DESC<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>4.3 \u5185\u5b58\u4f7f\u7528\u76d1\u63a7<\/h4>\n<p>  #mermaid-svg-X3xkmkfEnlwvmAvT {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT .error-icon{fill:#552222;}#mermaid-svg-X3xkmkfEnlwvmAvT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-X3xkmkfEnlwvmAvT .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-X3xkmkfEnlwvmAvT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-X3xkmkfEnlwvmAvT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-X3xkmkfEnlwvmAvT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-X3xkmkfEnlwvmAvT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-X3xkmkfEnlwvmAvT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-X3xkmkfEnlwvmAvT .marker.cross{stroke:#333333;}#mermaid-svg-X3xkmkfEnlwvmAvT svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-X3xkmkfEnlwvmAvT .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT .cluster-label text{fill:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT .cluster-label span{color:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT .label text,#mermaid-svg-X3xkmkfEnlwvmAvT span{fill:#333;color:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT .node rect,#mermaid-svg-X3xkmkfEnlwvmAvT .node circle,#mermaid-svg-X3xkmkfEnlwvmAvT .node ellipse,#mermaid-svg-X3xkmkfEnlwvmAvT .node polygon,#mermaid-svg-X3xkmkfEnlwvmAvT .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-X3xkmkfEnlwvmAvT .node .label{text-align:center;}#mermaid-svg-X3xkmkfEnlwvmAvT .node.clickable{cursor:pointer;}#mermaid-svg-X3xkmkfEnlwvmAvT .arrowheadPath{fill:#333333;}#mermaid-svg-X3xkmkfEnlwvmAvT .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-X3xkmkfEnlwvmAvT .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-X3xkmkfEnlwvmAvT .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-X3xkmkfEnlwvmAvT .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-X3xkmkfEnlwvmAvT .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-X3xkmkfEnlwvmAvT .cluster text{fill:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT .cluster span{color:#333;}#mermaid-svg-X3xkmkfEnlwvmAvT div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-X3xkmkfEnlwvmAvT :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E1\" class=\"edgeLabel L-LS-E&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E2\" class=\"edgeLabel L-LS-E&#039; L-LE-E2\"><\/span> <\/p>\n<p>           SQL Server\u5185\u5b58 <\/p>\n<p>           \u7f13\u51b2\u6c60 <\/p>\n<p>           \u8ba1\u5212\u7f13\u5b58 <\/p>\n<p>           \u9501\u5185\u5b58 <\/p>\n<p>           \u5176\u4ed6\u5185\u5b58 <\/p>\n<p>           \u6570\u636e\u9875\u7f13\u5b58 <\/p>\n<p>           \u7d22\u5f15\u9875\u7f13\u5b58 <\/p>\n<p>           \u7f13\u5b58\u547d\u4e2d\u7387 <\/p>\n<p>           \u5b58\u50a8\u8fc7\u7a0b\u8ba1\u5212 <\/p>\n<p>           \u5373\u5e2d\u67e5\u8be2\u8ba1\u5212 <\/p>\n<p>           \u8ba1\u5212\u91cd\u7528\u7387 <\/p>\n<p>           \u9501\u7ba1\u7406\u5668 <\/p>\n<p>           \u6b7b\u9501\u76d1\u89c6\u5668 <\/p>\n<p>           \u8fde\u63a5\u5185\u5b58 <\/p>\n<p>           \u5de5\u4f5c\u7a7a\u95f4\u5185\u5b58 <\/p>\n<h5>4.3.1 \u5185\u5b58\u538b\u529b\u76d1\u63a7\u811a\u672c<\/h5>\n<p><span class=\"token comment\">&#8212; \u5185\u5b58\u538b\u529b\u76d1\u63a7<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span><br \/>\n    counter_name<span class=\"token punctuation\">,<\/span><br \/>\n    cntr_value<span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token keyword\">CASE<\/span> counter_name<br \/>\n        <span class=\"token keyword\">WHEN<\/span> <span class=\"token string\">&#039;Buffer cache hit ratio&#039;<\/span> <span class=\"token keyword\">THEN<\/span><br \/>\n            <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> cntr_value <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">90<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;WARNING: Low buffer cache hit ratio&#039;<\/span><br \/>\n                 <span class=\"token keyword\">WHEN<\/span> cntr_value <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">95<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;CAUTION: Consider memory optimization&#039;<\/span><br \/>\n                 <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;OK&#039;<\/span><br \/>\n            <span class=\"token keyword\">END<\/span><br \/>\n        <span class=\"token keyword\">WHEN<\/span> <span class=\"token string\">&#039;Page life expectancy&#039;<\/span> <span class=\"token keyword\">THEN<\/span><br \/>\n            <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> cntr_value <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">300<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;CRITICAL: Very low page life expectancy&#039;<\/span><br \/>\n                 <span class=\"token keyword\">WHEN<\/span> cntr_value <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">600<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;WARNING: Low page life expectancy&#039;<\/span><br \/>\n                 <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;OK&#039;<\/span><br \/>\n            <span class=\"token keyword\">END<\/span><br \/>\n        <span class=\"token keyword\">WHEN<\/span> <span class=\"token string\">&#039;Free Memory (KB)&#039;<\/span> <span class=\"token keyword\">THEN<\/span><br \/>\n            <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> cntr_value <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">1048576<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;WARNING: Low free memory&#039;<\/span><br \/>\n                 <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;OK&#039;<\/span><br \/>\n            <span class=\"token keyword\">END<\/span><br \/>\n    <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">AS<\/span> <span class=\"token keyword\">status<\/span><br \/>\n<span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>dm_os_performance_counters<br \/>\n<span class=\"token keyword\">WHERE<\/span> counter_name <span class=\"token operator\">IN<\/span> <span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token string\">&#039;Buffer cache hit ratio&#039;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#039;Page life expectancy&#039;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#039;Free Memory (KB)&#039;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#039;Total Server Memory (KB)&#039;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#039;Target Server Memory (KB)&#039;<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token operator\">AND<\/span> object_name <span class=\"token operator\">LIKE<\/span> <span class=\"token string\">&#039;%Memory Manager%&#039;<\/span><br \/>\n   <span class=\"token operator\">OR<\/span> object_name <span class=\"token operator\">LIKE<\/span> <span class=\"token string\">&#039;%Buffer Manager%&#039;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<hr \/>\n<h3>5. \u5b9e\u65f6\u76d1\u6d4b\u5de5\u5177\u4e0e\u89e3\u51b3\u65b9\u6848<\/h3>\n<h4>5.1 \u76d1\u63a7\u5de5\u5177\u751f\u6001\u5bf9\u6bd4<\/h4>\n<table>\n<tr>\u5de5\u5177\u7c7b\u578b\u4ee3\u8868\u4ea7\u54c1\u4f18\u52bf\u9002\u7528\u573a\u666f<\/tr>\n<tbody>\n<tr>\n<td>\u539f\u751f\u5de5\u5177<\/td>\n<td>SSMS\u6d3b\u52a8\u76d1\u89c6\u5668<\/td>\n<td>\u514d\u8d39\u3001\u96c6\u6210\u5ea6\u9ad8<\/td>\n<td>\u5c0f\u89c4\u6a21\u73af\u5883<\/td>\n<\/tr>\n<tr>\n<td>\u7b2c\u4e09\u65b9\u5de5\u5177<\/td>\n<td>SolarWinds DPA<\/td>\n<td>\u529f\u80fd\u5168\u9762\u3001\u754c\u9762\u53cb\u597d<\/td>\n<td>\u4f01\u4e1a\u7ea7\u73af\u5883<\/td>\n<\/tr>\n<tr>\n<td>\u5f00\u6e90\u65b9\u6848<\/td>\n<td>Grafana &#043; InfluxDB<\/td>\n<td>\u81ea\u5b9a\u4e49\u6027\u5f3a\u3001\u6210\u672c\u4f4e<\/td>\n<td>\u6280\u672f\u56e2\u961f\u5f3a<\/td>\n<\/tr>\n<tr>\n<td>\u4e91\u7aef\u76d1\u63a7<\/td>\n<td>Azure Monitor<\/td>\n<td>\u6258\u7ba1\u670d\u52a1\u3001\u81ea\u52a8\u5316<\/td>\n<td>\u4e91\u73af\u5883<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>5.2 \u81ea\u5efa\u76d1\u63a7\u5e73\u53f0\u67b6\u6784<\/h4>\n<p>  #mermaid-svg-JsaJ2qsqkBNYFKaG {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .error-icon{fill:#552222;}#mermaid-svg-JsaJ2qsqkBNYFKaG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JsaJ2qsqkBNYFKaG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .marker.cross{stroke:#333333;}#mermaid-svg-JsaJ2qsqkBNYFKaG svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JsaJ2qsqkBNYFKaG .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .cluster-label text{fill:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .cluster-label span{color:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .label text,#mermaid-svg-JsaJ2qsqkBNYFKaG span{fill:#333;color:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .node rect,#mermaid-svg-JsaJ2qsqkBNYFKaG .node circle,#mermaid-svg-JsaJ2qsqkBNYFKaG .node ellipse,#mermaid-svg-JsaJ2qsqkBNYFKaG .node polygon,#mermaid-svg-JsaJ2qsqkBNYFKaG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JsaJ2qsqkBNYFKaG .node .label{text-align:center;}#mermaid-svg-JsaJ2qsqkBNYFKaG .node.clickable{cursor:pointer;}#mermaid-svg-JsaJ2qsqkBNYFKaG .arrowheadPath{fill:#333333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JsaJ2qsqkBNYFKaG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-JsaJ2qsqkBNYFKaG .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-JsaJ2qsqkBNYFKaG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JsaJ2qsqkBNYFKaG .cluster text{fill:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG .cluster span{color:#333;}#mermaid-svg-JsaJ2qsqkBNYFKaG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JsaJ2qsqkBNYFKaG :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>           \u5c55\u793a\u5c42 <\/p>\n<p>           \u5206\u6790\u5904\u7406 <\/p>\n<p>           \u6570\u636e\u5b58\u50a8 <\/p>\n<p>           \u6d88\u606f\u961f\u5217 <\/p>\n<p>           \u6570\u636e\u6536\u96c6\u5c42 <\/p>\n<p>         <span id=\"L-L-A1-B1\" class=\"edgeLabel L-LS-A1&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-A2-B1\" class=\"edgeLabel L-LS-A2&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-A3-B2\" class=\"edgeLabel L-LS-A3&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B1-C1\" class=\"edgeLabel L-LS-B1&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B2-C2\" class=\"edgeLabel L-LS-B2&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B1-C3\" class=\"edgeLabel L-LS-B1&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C1-D1\" class=\"edgeLabel L-LS-C1&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C2-D2\" class=\"edgeLabel L-LS-C2&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C3-D3\" class=\"edgeLabel L-LS-C3&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D1-E1\" class=\"edgeLabel L-LS-D1&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D2-E2\" class=\"edgeLabel L-LS-D2&#039; L-LE-E2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D3-E4\" class=\"edgeLabel L-LS-D3&#039; L-LE-E4\"><\/span> <\/p>\n<p>           Grafana\u4eea\u8868\u677f <\/p>\n<p>           Web\u7ba1\u7406\u754c\u9762 <\/p>\n<p>           \u79fb\u52a8\u7aefAPP <\/p>\n<p>           \u544a\u8b66\u901a\u77e5 <\/p>\n<p>           \u5b9e\u65f6\u6d41\u5904\u7406 <\/p>\n<p>           \u5f02\u5e38\u68c0\u6d4b\u7b97\u6cd5 <\/p>\n<p>           \u544a\u8b66\u89c4\u5219\u5f15\u64ce <\/p>\n<p>           InfluxDB\u65f6\u5e8f\u6570\u636e\u5e93 <\/p>\n<p>           Elasticsearch\u65e5\u5fd7\u5b58\u50a8 <\/p>\n<p>           SQL Server\u5143\u6570\u636e <\/p>\n<p>           Redis\u961f\u5217 <\/p>\n<p>           RabbitMQ <\/p>\n<p>           PowerShell\u6536\u96c6\u5668 <\/p>\n<p>           T-SQL\u76d1\u63a7\u811a\u672c <\/p>\n<p>           \u6027\u80fd\u8ba1\u6570\u5668\u91c7\u96c6 <\/p>\n<h4>5.3 PowerShell\u81ea\u52a8\u5316\u76d1\u63a7\u811a\u672c<\/h4>\n<h5>5.3.1 \u7cfb\u7edf\u6027\u80fd\u6570\u636e\u6536\u96c6<\/h5>\n<p><span class=\"token comment\"># SQL Server\u6027\u80fd\u6570\u636e\u6536\u96c6\u811a\u672c<\/span><br \/>\n<span class=\"token keyword\">param<\/span><span class=\"token punctuation\">(<\/span><br \/>\n    <span class=\"token namespace\">[string]<\/span><span class=\"token variable\">$ServerInstance<\/span> &#061; <span class=\"token string\">&#034;localhost&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token namespace\">[string]<\/span><span class=\"token variable\">$Database<\/span> &#061; <span class=\"token string\">&#034;master&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token namespace\">[string]<\/span><span class=\"token variable\">$OutputPath<\/span> &#061; <span class=\"token string\">&#034;C:\\\\MonitoringData&#034;<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u5bfc\u5165SQL Server\u6a21\u5757<\/span><br \/>\n<span class=\"token function\">Import-Module<\/span> SqlServer <span class=\"token operator\">&#8211;<\/span>ErrorAction SilentlyContinue<\/p>\n<p><span class=\"token comment\"># \u5b9a\u4e49\u76d1\u63a7\u67e5\u8be2<\/span><br \/>\n<span class=\"token variable\">$MonitoringQueries<\/span> &#061; &#064;<span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string\">&#034;WaitStats&#034;<\/span> &#061; &#064;<span class=\"token string\">&#034;<br \/>\n        SELECT<br \/>\n            wait_type,<br \/>\n            waiting_tasks_count,<br \/>\n            wait_time_ms,<br \/>\n            max_wait_time_ms,<br \/>\n            signal_wait_time_ms,<br \/>\n            GETDATE() as collection_time<br \/>\n        FROM sys.dm_os_wait_stats<br \/>\n        WHERE wait_type NOT IN (<br \/>\n            &#039;BROKER_EVENTHANDLER&#039;, &#039;BROKER_RECEIVE_WAITFOR&#039;,<br \/>\n            &#039;BROKER_TASK_STOP&#039;, &#039;BROKER_TO_FLUSH&#039;,<br \/>\n            &#039;BROKER_TRANSMITTER&#039;, &#039;CHECKPOINT_QUEUE&#039;,<br \/>\n            &#039;CHKPT&#039;, &#039;CLR_AUTO_EVENT&#039;, &#039;CLR_MANUAL_EVENT&#039;<br \/>\n        )<br \/>\n&#034;<\/span>&#064;<\/p>\n<p>    <span class=\"token string\">&#034;CPUUsage&#034;<\/span> &#061; &#064;<span class=\"token string\">&#034;<br \/>\n        SELECT<br \/>\n            SQLProcessUtilization,<br \/>\n            SystemIdle,<br \/>\n            100 &#8211; SystemIdle &#8211; SQLProcessUtilization as OtherProcessUtilization,<br \/>\n            GETDATE() as collection_time<br \/>\n        FROM (<br \/>\n            SELECT record.value(&#039;(.\/Record\/&#064;id)[1]&#039;, &#039;int&#039;) as record_id,<br \/>\n                   record.value(&#039;(.\/Record\/SchedulerMonitorEvent\/SystemHealth\/SystemIdle)[1]&#039;, &#039;int&#039;) as SystemIdle,<br \/>\n                   record.value(&#039;(.\/Record\/SchedulerMonitorEvent\/SystemHealth\/ProcessUtilization)[1]&#039;, &#039;int&#039;) as SQLProcessUtilization<br \/>\n            FROM (<br \/>\n                SELECT TOP 1 CONVERT(xml, record) AS record<br \/>\n                FROM sys.dm_os_ring_buffers<br \/>\n                WHERE ring_buffer_type &#061; N&#039;RING_BUFFER_SCHEDULER_MONITOR&#039;<br \/>\n                  AND record LIKE &#039;%&lt;SystemHealth&gt;%&#039;<br \/>\n                ORDER BY timestamp DESC<br \/>\n            ) AS x<br \/>\n        ) AS y<br \/>\n&#034;<\/span>&#064;<\/p>\n<p>    <span class=\"token string\">&#034;DatabaseSizes&#034;<\/span> &#061; &#064;<span class=\"token string\">&#034;<br \/>\n        SELECT<br \/>\n            DB_NAME(database_id) as DatabaseName,<br \/>\n            type_desc as FileType,<br \/>\n            name as FileName,<br \/>\n            size * 8 \/ 1024 as SizeMB,<br \/>\n            max_size * 8 \/ 1024 as MaxSizeMB,<br \/>\n            growth as Growth,<br \/>\n            is_percent_growth,<br \/>\n            GETDATE() as collection_time<br \/>\n        FROM sys.master_files<br \/>\n        WHERE database_id &gt; 4  &#8212; \u6392\u9664\u7cfb\u7edf\u6570\u636e\u5e93<br \/>\n&#034;<\/span>&#064;<br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\"># \u6267\u884c\u67e5\u8be2\u5e76\u4fdd\u5b58\u7ed3\u679c<\/span><br \/>\n<span class=\"token keyword\">foreach<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token variable\">$QueryName<\/span> in <span class=\"token variable\">$MonitoringQueries<\/span><span class=\"token punctuation\">.<\/span>Keys<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token variable\">$Results<\/span> &#061; <span class=\"token function\">Invoke-Sqlcmd<\/span> <span class=\"token operator\">&#8211;<\/span>ServerInstance <span class=\"token variable\">$ServerInstance<\/span> <span class=\"token operator\">&#8211;<\/span>Database <span class=\"token variable\">$Database<\/span> <span class=\"token operator\">&#8211;<\/span>Query <span class=\"token variable\">$MonitoringQueries<\/span><span class=\"token punctuation\">[<\/span><span class=\"token variable\">$QueryName<\/span><span class=\"token punctuation\">]<\/span><\/p>\n<p>        <span class=\"token variable\">$OutputFile<\/span> &#061; <span class=\"token function\">Join-Path<\/span> <span class=\"token variable\">$OutputPath<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$QueryName_<\/span><span class=\"token function\">$<span class=\"token punctuation\">(<\/span><span class=\"token function\">Get-Date<\/span> <span class=\"token operator\">&#8211;<\/span>Format <span class=\"token string\">&#039;yyyyMMdd_HHmmss&#039;<\/span><span class=\"token punctuation\">)<\/span><\/span>.json&#034;<\/span><br \/>\n        <span class=\"token variable\">$Results<\/span> <span class=\"token punctuation\">|<\/span> <span class=\"token function\">ConvertTo-Json<\/span> <span class=\"token punctuation\">|<\/span> <span class=\"token function\">Out-File<\/span> <span class=\"token operator\">&#8211;<\/span>FilePath <span class=\"token variable\">$OutputFile<\/span> <span class=\"token operator\">&#8211;<\/span>Encoding UTF8<\/p>\n<p>        <span class=\"token function\">Write-Host<\/span> <span class=\"token string\">&#034;\u2713 <span class=\"token variable\">$QueryName<\/span> data collected: <span class=\"token variable\">$OutputFile<\/span>&#034;<\/span> <span class=\"token operator\">&#8211;<\/span>ForegroundColor Green<br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">Write-Error<\/span> <span class=\"token string\">&#034;Failed to collect <span class=\"token variable\">$QueryName<\/span> data: <span class=\"token function\">$<span class=\"token punctuation\">(<\/span><span class=\"token variable\">$_<\/span><span class=\"token punctuation\">.<\/span>Exception<span class=\"token punctuation\">.<\/span>Message<span class=\"token punctuation\">)<\/span><\/span>&#034;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>5.4 \u544a\u8b66\u914d\u7f6e\u4e0e\u7ba1\u7406<\/h4>\n<h5>5.4.1 \u667a\u80fd\u544a\u8b66\u89c4\u5219<\/h5>\n<p><span class=\"token comment\">&#8212; \u521b\u5efa\u544a\u8b66\u914d\u7f6e\u8868<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">TABLE<\/span> MonitoringAlerts <span class=\"token punctuation\">(<\/span><br \/>\n    AlertID <span class=\"token keyword\">int<\/span> <span class=\"token keyword\">IDENTITY<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">PRIMARY<\/span> <span class=\"token keyword\">KEY<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    AlertName nvarchar<span class=\"token punctuation\">(<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    MetricName nvarchar<span class=\"token punctuation\">(<\/span><span class=\"token number\">50<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    ThresholdType <span class=\"token keyword\">varchar<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">CHECK<\/span> <span class=\"token punctuation\">(<\/span>ThresholdType <span class=\"token operator\">IN<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;&gt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&lt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&#061;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&gt;&#061;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&lt;&#061;&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    WarningThreshold <span class=\"token keyword\">decimal<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">18<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    CriticalThreshold <span class=\"token keyword\">decimal<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">18<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    IsEnabled <span class=\"token keyword\">bit<\/span> <span class=\"token keyword\">DEFAULT<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    NotificationMethod <span class=\"token keyword\">varchar<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">20<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">DEFAULT<\/span> <span class=\"token string\">&#039;Email&#039;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    CreatedDate datetime2 <span class=\"token keyword\">DEFAULT<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">&#8212; \u63d2\u5165\u9ed8\u8ba4\u544a\u8b66\u89c4\u5219<\/span><br \/>\n<span class=\"token keyword\">INSERT<\/span> <span class=\"token keyword\">INTO<\/span> MonitoringAlerts <span class=\"token punctuation\">(<\/span>AlertName<span class=\"token punctuation\">,<\/span> MetricName<span class=\"token punctuation\">,<\/span> ThresholdType<span class=\"token punctuation\">,<\/span> WarningThreshold<span class=\"token punctuation\">,<\/span> CriticalThreshold<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">VALUES<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;CPU\u4f7f\u7528\u7387\u8fc7\u9ad8&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;CPUUtilization&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&gt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">70.0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">85.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\u5185\u5b58\u4f7f\u7528\u7387\u8fc7\u9ad8&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;MemoryUtilization&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&gt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">80.0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">90.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\u78c1\u76d8\u7a7a\u95f4\u4e0d\u8db3&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;DiskSpaceUsed&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&gt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">75.0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">90.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\u963b\u585e\u4f1a\u8bdd\u8fc7\u591a&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;BlockedProcessCount&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&gt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">5.0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">10.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\u6b7b\u9501\u9891\u7387\u8fc7\u9ad8&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;DeadlocksPerMinute&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&gt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">1.0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\u7f13\u5b58\u547d\u4e2d\u7387\u8fc7\u4f4e&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;BufferCacheHitRatio&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;&lt;&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">95.0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">90.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<hr \/>\n<h3>6. \u76d1\u63a7\u6700\u4f73\u5b9e\u8df5\u4e0e\u6848\u4f8b<\/h3>\n<h4>6.1 \u76d1\u63a7\u7b56\u7565\u6700\u4f73\u5b9e\u8df5<\/h4>\n<h5>6.1.1 \u5206\u5c42\u76d1\u63a7\u7b56\u7565<\/h5>\n<p>  #mermaid-svg-UGdGiem90ygCCnn5 {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UGdGiem90ygCCnn5 .error-icon{fill:#552222;}#mermaid-svg-UGdGiem90ygCCnn5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UGdGiem90ygCCnn5 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-UGdGiem90ygCCnn5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UGdGiem90ygCCnn5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UGdGiem90ygCCnn5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UGdGiem90ygCCnn5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UGdGiem90ygCCnn5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UGdGiem90ygCCnn5 .marker.cross{stroke:#333333;}#mermaid-svg-UGdGiem90ygCCnn5 svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UGdGiem90ygCCnn5 .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-UGdGiem90ygCCnn5 .cluster-label text{fill:#333;}#mermaid-svg-UGdGiem90ygCCnn5 .cluster-label span{color:#333;}#mermaid-svg-UGdGiem90ygCCnn5 .label text,#mermaid-svg-UGdGiem90ygCCnn5 span{fill:#333;color:#333;}#mermaid-svg-UGdGiem90ygCCnn5 .node rect,#mermaid-svg-UGdGiem90ygCCnn5 .node circle,#mermaid-svg-UGdGiem90ygCCnn5 .node ellipse,#mermaid-svg-UGdGiem90ygCCnn5 .node polygon,#mermaid-svg-UGdGiem90ygCCnn5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UGdGiem90ygCCnn5 .node .label{text-align:center;}#mermaid-svg-UGdGiem90ygCCnn5 .node.clickable{cursor:pointer;}#mermaid-svg-UGdGiem90ygCCnn5 .arrowheadPath{fill:#333333;}#mermaid-svg-UGdGiem90ygCCnn5 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-UGdGiem90ygCCnn5 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-UGdGiem90ygCCnn5 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-UGdGiem90ygCCnn5 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-UGdGiem90ygCCnn5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-UGdGiem90ygCCnn5 .cluster text{fill:#333;}#mermaid-svg-UGdGiem90ygCCnn5 .cluster span{color:#333;}#mermaid-svg-UGdGiem90ygCCnn5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-UGdGiem90ygCCnn5 :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D3\" class=\"edgeLabel L-LS-D&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E1\" class=\"edgeLabel L-LS-E&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E2\" class=\"edgeLabel L-LS-E&#039; L-LE-E2\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E3\" class=\"edgeLabel L-LS-E&#039; L-LE-E3\"><\/span> <\/p>\n<p>           \u5206\u5c42\u76d1\u63a7\u7b56\u7565 <\/p>\n<p>           \u57fa\u7840\u8bbe\u65bd\u5c42 <\/p>\n<p>           \u6570\u636e\u5e93\u5b9e\u4f8b\u5c42 <\/p>\n<p>           \u5e94\u7528\u5c42 <\/p>\n<p>           \u4e1a\u52a1\u5c42 <\/p>\n<p>           \u670d\u52a1\u5668\u786c\u4ef6\u76d1\u63a7 <\/p>\n<p>           \u64cd\u4f5c\u7cfb\u7edf\u76d1\u63a7 <\/p>\n<p>           \u7f51\u7edc\u76d1\u63a7 <\/p>\n<p>           SQL Server\u670d\u52a1 <\/p>\n<p>           \u6570\u636e\u5e93\u6027\u80fd <\/p>\n<p>           \u5b58\u50a8\u76d1\u63a7 <\/p>\n<p>           \u5e94\u7528\u8fde\u63a5\u6c60 <\/p>\n<p>           \u67e5\u8be2\u6267\u884c <\/p>\n<p>           \u4e8b\u52a1\u5904\u7406 <\/p>\n<p>           \u5173\u952e\u4e1a\u52a1\u6307\u6807 <\/p>\n<p>           \u7528\u6237\u4f53\u9a8c <\/p>\n<p>           SLA\u5408\u89c4\u6027 <\/p>\n<h5>6.1.2 \u76d1\u63a7\u6570\u636e\u751f\u547d\u5468\u671f\u7ba1\u7406<\/h5>\n<p><span class=\"token comment\">&#8212; \u76d1\u63a7\u6570\u636e\u4fdd\u7559\u7b56\u7565<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">PROCEDURE<\/span> sp_CleanupMonitoringData<br \/>\n<span class=\"token keyword\">AS<\/span><br \/>\n<span class=\"token keyword\">BEGIN<\/span><br \/>\n    <span class=\"token keyword\">DECLARE<\/span> <span class=\"token variable\">&#064;RetentionDays<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">90<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">DECLARE<\/span> <span class=\"token variable\">&#064;CutoffDate<\/span> <span class=\"token keyword\">datetime<\/span> <span class=\"token operator\">&#061;<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">day<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token variable\">&#064;RetentionDays<\/span><span class=\"token punctuation\">,<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; \u6e05\u7406\u5386\u53f2\u6027\u80fd\u6570\u636e<\/span><br \/>\n    <span class=\"token keyword\">DELETE<\/span> <span class=\"token keyword\">FROM<\/span> PerformanceMetrics<br \/>\n    <span class=\"token keyword\">WHERE<\/span> CollectionTime <span class=\"token operator\">&lt;<\/span> <span class=\"token variable\">&#064;CutoffDate<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; \u6e05\u7406\u5386\u53f2\u544a\u8b66\u6570\u636e<\/span><br \/>\n    <span class=\"token keyword\">DELETE<\/span> <span class=\"token keyword\">FROM<\/span> AlertHistory<br \/>\n    <span class=\"token keyword\">WHERE<\/span> AlertTime <span class=\"token operator\">&lt;<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">day<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">365<\/span><span class=\"token punctuation\">,<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">&#8212; \u544a\u8b66\u4fdd\u75591\u5e74<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; \u6e05\u7406\u67e5\u8be2\u5b58\u50a8\u5386\u53f2\u6570\u636e<\/span><br \/>\n    <span class=\"token keyword\">EXEC<\/span> sp_query_store_flush_db<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; \u538b\u7f29\u6e05\u7406\u540e\u7684\u8868<\/span><br \/>\n    <span class=\"token keyword\">ALTER<\/span> <span class=\"token keyword\">INDEX<\/span> <span class=\"token keyword\">ALL<\/span> <span class=\"token keyword\">ON<\/span> PerformanceMetrics REORGANIZE<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">ALTER<\/span> <span class=\"token keyword\">INDEX<\/span> <span class=\"token keyword\">ALL<\/span> <span class=\"token keyword\">ON<\/span> AlertHistory REORGANIZE<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">PRINT<\/span> <span class=\"token string\">&#039;\u76d1\u63a7\u6570\u636e\u6e05\u7406\u5b8c\u6210&#xff0c;\u6e05\u7406\u65e5\u671f\u65e9\u4e8e: &#039;<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token keyword\">CONVERT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">varchar<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token variable\">&#064;CutoffDate<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">END<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>6.2 \u5b9e\u9645\u6848\u4f8b\u5206\u6790<\/h4>\n<h5>6.2.1 \u6848\u4f8b\u4e00&#xff1a;\u7535\u5546\u5e73\u53f0\u9ad8\u5e76\u53d1\u76d1\u63a7<\/h5>\n<p>\u4e1a\u52a1\u573a\u666f&#xff1a; \u67d0\u7535\u5546\u5e73\u53f0\u65e5\u8ba2\u5355\u91cf100\u4e07&#043;&#xff0c;\u6570\u636e\u5e93\u627f\u8f7d\u9ad8\u5e76\u53d1\u8bfb\u5199\u538b\u529b<\/p>\n<p>\u76d1\u63a7\u91cd\u70b9&#xff1a;<\/p>\n<ul>\n<li>\u8fde\u63a5\u6c60\u76d1\u63a7&#xff1a;\u9632\u6b62\u8fde\u63a5\u6cc4\u9732<\/li>\n<li>\u9501\u7b49\u5f85\u76d1\u63a7&#xff1a;\u907f\u514d\u6b7b\u9501\u5f71\u54cd\u7528\u6237\u4f53\u9a8c<\/li>\n<li>\u67e5\u8be2\u6027\u80fd\u76d1\u63a7&#xff1a;\u53ca\u65f6\u53d1\u73b0\u6162\u67e5\u8be2<\/li>\n<\/ul>\n<p>\u89e3\u51b3\u65b9\u6848&#xff1a;<\/p>\n<p><span class=\"token comment\">&#8212; \u9ad8\u5e76\u53d1\u573a\u666f\u8fde\u63a5\u76d1\u63a7<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">VIEW<\/span> v_ConnectionMonitoring <span class=\"token keyword\">AS<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span>session_id<span class=\"token punctuation\">,<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span>login_name<span class=\"token punctuation\">,<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span>host_name<span class=\"token punctuation\">,<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span>program_name<span class=\"token punctuation\">,<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">status<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span>last_request_start_time<span class=\"token punctuation\">,<\/span><br \/>\n    s<span class=\"token punctuation\">.<\/span>last_request_end_time<span class=\"token punctuation\">,<\/span><br \/>\n    DATEDIFF<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">second<\/span><span class=\"token punctuation\">,<\/span> s<span class=\"token punctuation\">.<\/span>last_request_end_time<span class=\"token punctuation\">,<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> idle_time_seconds<span class=\"token punctuation\">,<\/span><br \/>\n    r<span class=\"token punctuation\">.<\/span>command<span class=\"token punctuation\">,<\/span><br \/>\n    r<span class=\"token punctuation\">.<\/span>wait_type<span class=\"token punctuation\">,<\/span><br \/>\n    r<span class=\"token punctuation\">.<\/span>wait_time<span class=\"token punctuation\">,<\/span><br \/>\n    st<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">text<\/span> <span class=\"token keyword\">as<\/span> current_sql<br \/>\n<span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>dm_exec_sessions s<br \/>\n<span class=\"token keyword\">LEFT<\/span> <span class=\"token keyword\">JOIN<\/span> sys<span class=\"token punctuation\">.<\/span>dm_exec_requests r <span class=\"token keyword\">ON<\/span> s<span class=\"token punctuation\">.<\/span>session_id <span class=\"token operator\">&#061;<\/span> r<span class=\"token punctuation\">.<\/span>session_id<br \/>\n<span class=\"token keyword\">OUTER<\/span> <span class=\"token keyword\">APPLY<\/span> sys<span class=\"token punctuation\">.<\/span>dm_exec_sql_text<span class=\"token punctuation\">(<\/span>r<span class=\"token punctuation\">.<\/span>sql_handle<span class=\"token punctuation\">)<\/span> st<br \/>\n<span class=\"token keyword\">WHERE<\/span> s<span class=\"token punctuation\">.<\/span>is_user_process <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">&#8212; \u76d1\u63a7\u957f\u65f6\u95f4\u7a7a\u95f2\u8fde\u63a5<\/span><br \/>\n<span class=\"token keyword\">SELECT<\/span> <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> long_idle_connections<br \/>\n<span class=\"token keyword\">FROM<\/span> v_ConnectionMonitoring<br \/>\n<span class=\"token keyword\">WHERE<\/span> idle_time_seconds <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">1800<\/span>  <span class=\"token comment\">&#8212; 30\u5206\u949f\u7a7a\u95f2<\/span><br \/>\n  <span class=\"token operator\">AND<\/span> <span class=\"token keyword\">status<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#039;sleeping&#039;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h5>6.2.2 \u6848\u4f8b\u4e8c&#xff1a;\u91d1\u878d\u7cfb\u7edf24&#215;7\u76d1\u63a7<\/h5>\n<p>\u4e1a\u52a1\u573a\u666f&#xff1a; \u94f6\u884c\u6838\u5fc3\u4ea4\u6613\u7cfb\u7edf&#xff0c;\u8981\u6c4299.99%\u53ef\u7528\u6027<\/p>\n<p>\u76d1\u63a7\u7b56\u7565&#xff1a;<\/p>\n<p>  #mermaid-svg-X4VWh63pAaVnIWNw {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-X4VWh63pAaVnIWNw .error-icon{fill:#552222;}#mermaid-svg-X4VWh63pAaVnIWNw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-X4VWh63pAaVnIWNw .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-X4VWh63pAaVnIWNw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-X4VWh63pAaVnIWNw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-X4VWh63pAaVnIWNw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-X4VWh63pAaVnIWNw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-X4VWh63pAaVnIWNw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-X4VWh63pAaVnIWNw .marker.cross{stroke:#333333;}#mermaid-svg-X4VWh63pAaVnIWNw svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-X4VWh63pAaVnIWNw .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-X4VWh63pAaVnIWNw .cluster-label text{fill:#333;}#mermaid-svg-X4VWh63pAaVnIWNw .cluster-label span{color:#333;}#mermaid-svg-X4VWh63pAaVnIWNw .label text,#mermaid-svg-X4VWh63pAaVnIWNw span{fill:#333;color:#333;}#mermaid-svg-X4VWh63pAaVnIWNw .node rect,#mermaid-svg-X4VWh63pAaVnIWNw .node circle,#mermaid-svg-X4VWh63pAaVnIWNw .node ellipse,#mermaid-svg-X4VWh63pAaVnIWNw .node polygon,#mermaid-svg-X4VWh63pAaVnIWNw .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-X4VWh63pAaVnIWNw .node .label{text-align:center;}#mermaid-svg-X4VWh63pAaVnIWNw .node.clickable{cursor:pointer;}#mermaid-svg-X4VWh63pAaVnIWNw .arrowheadPath{fill:#333333;}#mermaid-svg-X4VWh63pAaVnIWNw .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-X4VWh63pAaVnIWNw .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-X4VWh63pAaVnIWNw .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-X4VWh63pAaVnIWNw .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-X4VWh63pAaVnIWNw .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-X4VWh63pAaVnIWNw .cluster text{fill:#333;}#mermaid-svg-X4VWh63pAaVnIWNw .cluster span{color:#333;}#mermaid-svg-X4VWh63pAaVnIWNw div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-X4VWh63pAaVnIWNw :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D3\" class=\"edgeLabel L-LS-D&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E1\" class=\"edgeLabel L-LS-E&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E2\" class=\"edgeLabel L-LS-E&#039; L-LE-E2\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E3\" class=\"edgeLabel L-LS-E&#039; L-LE-E3\"><\/span> <\/p>\n<p>           \u91d1\u878d\u7cfb\u7edf\u76d1\u63a7 <\/p>\n<p>           \u5b9e\u65f6\u4ea4\u6613\u76d1\u63a7 <\/p>\n<p>           \u6570\u636e\u4e00\u81f4\u6027\u76d1\u63a7 <\/p>\n<p>           \u5b89\u5168\u5ba1\u8ba1\u76d1\u63a7 <\/p>\n<p>           \u707e\u5907\u5207\u6362\u76d1\u63a7 <\/p>\n<p>           TPS\u76d1\u63a7 <\/p>\n<p>           \u54cd\u5e94\u65f6\u95f4 <\/p>\n<p>           \u9519\u8bef\u7387 <\/p>\n<p>           \u8d26\u52a1\u5e73\u8861 <\/p>\n<p>           \u6570\u636e\u5b8c\u6574\u6027 <\/p>\n<p>           \u540c\u6b65\u72b6\u6001 <\/p>\n<p>           \u767b\u5f55\u5f02\u5e38 <\/p>\n<p>           \u6743\u9650\u53d8\u66f4 <\/p>\n<p>           \u654f\u611f\u64cd\u4f5c <\/p>\n<p>           \u4e3b\u5907\u540c\u6b65 <\/p>\n<p>           \u5207\u6362\u5c31\u7eea <\/p>\n<p>           \u6570\u636e\u4e00\u81f4 <\/p>\n<p>\u5173\u952e\u76d1\u63a7\u811a\u672c&#xff1a;<\/p>\n<p><span class=\"token comment\">&#8212; \u4ea4\u6613\u7cfb\u7edf\u5173\u952e\u6307\u6807\u76d1\u63a7<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">PROCEDURE<\/span> sp_MonitorCriticalMetrics<br \/>\n<span class=\"token keyword\">AS<\/span><br \/>\n<span class=\"token keyword\">BEGIN<\/span><br \/>\n    <span class=\"token comment\">&#8212; 1. \u5b9e\u65f6TPS\u76d1\u63a7<\/span><br \/>\n    <span class=\"token keyword\">SELECT<\/span><br \/>\n        <span class=\"token string\">&#039;TPS&#039;<\/span> <span class=\"token keyword\">as<\/span> MetricName<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">60.0<\/span> <span class=\"token keyword\">as<\/span> CurrentValue<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">60.0<\/span> <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">100<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;WARNING&#039;<\/span><br \/>\n             <span class=\"token keyword\">WHEN<\/span> <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">60.0<\/span> <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">50<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;CRITICAL&#039;<\/span><br \/>\n             <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;OK&#039;<\/span><br \/>\n        <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">as<\/span> <span class=\"token keyword\">Status<\/span><br \/>\n    <span class=\"token keyword\">FROM<\/span> TransactionLog<br \/>\n    <span class=\"token keyword\">WHERE<\/span> LogTime <span class=\"token operator\">&gt;&#061;<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; 2. \u8d26\u52a1\u5e73\u8861\u68c0\u67e5<\/span><br \/>\n    <span class=\"token keyword\">DECLARE<\/span> <span class=\"token variable\">&#064;BalanceCheck<\/span> <span class=\"token keyword\">decimal<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">18<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">SELECT<\/span> <span class=\"token variable\">&#064;BalanceCheck<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">SUM<\/span><span class=\"token punctuation\">(<\/span>Amount<span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">FROM<\/span> DailyBalance<br \/>\n    <span class=\"token keyword\">WHERE<\/span> BalanceDate <span class=\"token operator\">&#061;<\/span> CAST<span class=\"token punctuation\">(<\/span>GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> <span class=\"token keyword\">date<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">SELECT<\/span><br \/>\n        <span class=\"token string\">&#039;AccountBalance&#039;<\/span> <span class=\"token keyword\">as<\/span> MetricName<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token variable\">&#064;BalanceCheck<\/span> <span class=\"token keyword\">as<\/span> CurrentValue<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> ABS<span class=\"token punctuation\">(<\/span><span class=\"token variable\">&#064;BalanceCheck<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">0.01<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;CRITICAL&#039;<\/span><br \/>\n             <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;OK&#039;<\/span><br \/>\n        <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">as<\/span> <span class=\"token keyword\">Status<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; 3. \u6570\u636e\u5e93\u8fde\u63a5\u5065\u5eb7\u68c0\u67e5<\/span><br \/>\n    <span class=\"token keyword\">SELECT<\/span><br \/>\n        <span class=\"token string\">&#039;DatabaseConnections&#039;<\/span> <span class=\"token keyword\">as<\/span> MetricName<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> CurrentValue<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token keyword\">CASE<\/span> <span class=\"token keyword\">WHEN<\/span> <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">500<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;WARNING&#039;<\/span><br \/>\n             <span class=\"token keyword\">WHEN<\/span> <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">800<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;CRITICAL&#039;<\/span><br \/>\n             <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;OK&#039;<\/span><br \/>\n        <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">as<\/span> <span class=\"token keyword\">Status<\/span><br \/>\n    <span class=\"token keyword\">FROM<\/span> sys<span class=\"token punctuation\">.<\/span>dm_exec_sessions<br \/>\n    <span class=\"token keyword\">WHERE<\/span> is_user_process <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">END<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>6.3 \u544a\u8b66\u964d\u566a\u4e0e\u667a\u80fd\u5316<\/h4>\n<h5>6.3.1 \u544a\u8b66\u805a\u5408\u7b56\u7565<\/h5>\n<p><span class=\"token comment\">&#8212; \u667a\u80fd\u544a\u8b66\u805a\u5408\u5b58\u50a8\u8fc7\u7a0b<\/span><br \/>\n<span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">PROCEDURE<\/span> sp_ProcessAlerts<br \/>\n<span class=\"token keyword\">AS<\/span><br \/>\n<span class=\"token keyword\">BEGIN<\/span><br \/>\n    <span class=\"token comment\">&#8212; \u76f8\u540c\u7c7b\u578b\u544a\u8b665\u5206\u949f\u5185\u805a\u5408<\/span><br \/>\n    <span class=\"token keyword\">WITH<\/span> AlertAggregation <span class=\"token keyword\">AS<\/span> <span class=\"token punctuation\">(<\/span><br \/>\n        <span class=\"token keyword\">SELECT<\/span><br \/>\n            AlertType<span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token function\">COUNT<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> AlertCount<span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token function\">MIN<\/span><span class=\"token punctuation\">(<\/span>AlertTime<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> FirstAlertTime<span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token function\">MAX<\/span><span class=\"token punctuation\">(<\/span>AlertTime<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> LastAlertTime<span class=\"token punctuation\">,<\/span><br \/>\n            DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> DATEDIFF<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> AlertTime<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">5<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> TimeWindow<br \/>\n        <span class=\"token keyword\">FROM<\/span> RawAlerts<br \/>\n        <span class=\"token keyword\">WHERE<\/span> AlertTime <span class=\"token operator\">&gt;&#061;<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n          <span class=\"token operator\">AND<\/span> IsProcessed <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><br \/>\n        <span class=\"token keyword\">GROUP<\/span> <span class=\"token keyword\">BY<\/span> AlertType<span class=\"token punctuation\">,<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> DATEDIFF<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> AlertTime<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">5<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">INSERT<\/span> <span class=\"token keyword\">INTO<\/span> ProcessedAlerts <span class=\"token punctuation\">(<\/span>AlertType<span class=\"token punctuation\">,<\/span> AlertCount<span class=\"token punctuation\">,<\/span> TimeWindow<span class=\"token punctuation\">,<\/span> Severity<span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">SELECT<\/span><br \/>\n        AlertType<span class=\"token punctuation\">,<\/span><br \/>\n        AlertCount<span class=\"token punctuation\">,<\/span><br \/>\n        TimeWindow<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token keyword\">CASE<\/span><br \/>\n            <span class=\"token keyword\">WHEN<\/span> AlertCount <span class=\"token operator\">&gt;&#061;<\/span> <span class=\"token number\">10<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;CRITICAL&#039;<\/span><br \/>\n            <span class=\"token keyword\">WHEN<\/span> AlertCount <span class=\"token operator\">&gt;&#061;<\/span> <span class=\"token number\">5<\/span> <span class=\"token keyword\">THEN<\/span> <span class=\"token string\">&#039;WARNING&#039;<\/span><br \/>\n            <span class=\"token keyword\">ELSE<\/span> <span class=\"token string\">&#039;INFO&#039;<\/span><br \/>\n        <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">as<\/span> Severity<br \/>\n    <span class=\"token keyword\">FROM<\/span> AlertAggregation<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">&#8212; \u6807\u8bb0\u539f\u59cb\u544a\u8b66\u4e3a\u5df2\u5904\u7406<\/span><br \/>\n    <span class=\"token keyword\">UPDATE<\/span> RawAlerts<br \/>\n    <span class=\"token keyword\">SET<\/span> IsProcessed <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><br \/>\n    <span class=\"token keyword\">WHERE<\/span> AlertTime <span class=\"token operator\">&gt;&#061;<\/span> DATEADD<span class=\"token punctuation\">(<\/span><span class=\"token keyword\">minute<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> GETDATE<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">END<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<hr \/>\n<h3>7. \u603b\u7ed3\u4e0e\u5c55\u671b<\/h3>\n<h4>7.1 \u76d1\u63a7\u6280\u672f\u53d1\u5c55\u8d8b\u52bf<\/h4>\n<p>  #mermaid-svg-iqLEYkvYe1AAR0r8 {font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .error-icon{fill:#552222;}#mermaid-svg-iqLEYkvYe1AAR0r8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-iqLEYkvYe1AAR0r8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .marker.cross{stroke:#333333;}#mermaid-svg-iqLEYkvYe1AAR0r8 svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-iqLEYkvYe1AAR0r8 .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .cluster-label text{fill:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .cluster-label span{color:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .label text,#mermaid-svg-iqLEYkvYe1AAR0r8 span{fill:#333;color:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .node rect,#mermaid-svg-iqLEYkvYe1AAR0r8 .node circle,#mermaid-svg-iqLEYkvYe1AAR0r8 .node ellipse,#mermaid-svg-iqLEYkvYe1AAR0r8 .node polygon,#mermaid-svg-iqLEYkvYe1AAR0r8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-iqLEYkvYe1AAR0r8 .node .label{text-align:center;}#mermaid-svg-iqLEYkvYe1AAR0r8 .node.clickable{cursor:pointer;}#mermaid-svg-iqLEYkvYe1AAR0r8 .arrowheadPath{fill:#333333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-iqLEYkvYe1AAR0r8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-iqLEYkvYe1AAR0r8 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-iqLEYkvYe1AAR0r8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-iqLEYkvYe1AAR0r8 .cluster text{fill:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 .cluster span{color:#333;}#mermaid-svg-iqLEYkvYe1AAR0r8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-iqLEYkvYe1AAR0r8 :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;} <\/p>\n<p>         <span id=\"L-L-A-B\" class=\"edgeLabel L-LS-A&#039; L-LE-B\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-C\" class=\"edgeLabel L-LS-A&#039; L-LE-C\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-D\" class=\"edgeLabel L-LS-A&#039; L-LE-D\"><\/span> <\/p>\n<p>         <span id=\"L-L-A-E\" class=\"edgeLabel L-LS-A&#039; L-LE-E\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B1\" class=\"edgeLabel L-LS-B&#039; L-LE-B1\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B2\" class=\"edgeLabel L-LS-B&#039; L-LE-B2\"><\/span> <\/p>\n<p>         <span id=\"L-L-B-B3\" class=\"edgeLabel L-LS-B&#039; L-LE-B3\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C1\" class=\"edgeLabel L-LS-C&#039; L-LE-C1\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C2\" class=\"edgeLabel L-LS-C&#039; L-LE-C2\"><\/span> <\/p>\n<p>         <span id=\"L-L-C-C3\" class=\"edgeLabel L-LS-C&#039; L-LE-C3\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D1\" class=\"edgeLabel L-LS-D&#039; L-LE-D1\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D2\" class=\"edgeLabel L-LS-D&#039; L-LE-D2\"><\/span> <\/p>\n<p>         <span id=\"L-L-D-D3\" class=\"edgeLabel L-LS-D&#039; L-LE-D3\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E1\" class=\"edgeLabel L-LS-E&#039; L-LE-E1\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E2\" class=\"edgeLabel L-LS-E&#039; L-LE-E2\"><\/span> <\/p>\n<p>         <span id=\"L-L-E-E3\" class=\"edgeLabel L-LS-E&#039; L-LE-E3\"><\/span> <\/p>\n<p>           \u76d1\u63a7\u6280\u672f\u8d8b\u52bf <\/p>\n<p>           AI\/ML\u96c6\u6210 <\/p>\n<p>           \u4e91\u539f\u751f\u76d1\u63a7 <\/p>\n<p>           \u81ea\u52a8\u5316\u8fd0\u7ef4 <\/p>\n<p>           \u53ef\u89c2\u6d4b\u6027 <\/p>\n<p>           \u5f02\u5e38\u68c0\u6d4b\u7b97\u6cd5 <\/p>\n<p>           \u9884\u6d4b\u6027\u7ef4\u62a4 <\/p>\n<p>           \u667a\u80fd\u544a\u8b66 <\/p>\n<p>           \u5bb9\u5668\u5316\u76d1\u63a7 <\/p>\n<p>           \u5fae\u670d\u52a1\u76d1\u63a7 <\/p>\n<p>           \u591a\u4e91\u7ba1\u7406 <\/p>\n<p>           \u81ea\u6108\u7cfb\u7edf <\/p>\n<p>           \u81ea\u52a8\u6269\u7f29\u5bb9 <\/p>\n<p>           \u6545\u969c\u81ea\u52a8\u5207\u6362 <\/p>\n<p>           \u5206\u5e03\u5f0f\u8ffd\u8e2a <\/p>\n<p>           \u7edf\u4e00\u53ef\u89c2\u6d4b\u5e73\u53f0 <\/p>\n<p>           \u4e1a\u52a1\u76d1\u63a7\u6574\u5408 <\/p>\n<h4>7.2 \u6838\u5fc3\u8981\u70b9\u603b\u7ed3<\/h4>\n<p>\u6280\u672f\u8981\u70b9&#xff1a;<\/p>\n<li>\u5206\u5c42\u76d1\u63a7\u67b6\u6784 &#8211; \u4ece\u57fa\u7840\u8bbe\u65bd\u5230\u4e1a\u52a1\u5c42\u9762\u7684\u5168\u65b9\u4f4d\u8986\u76d6<\/li>\n<li>\u5b9e\u65f6\u6027\u5e73\u8861 &#8211; \u5728\u76d1\u63a7\u7cbe\u5ea6\u548c\u7cfb\u7edf\u6027\u80fd\u4e4b\u95f4\u627e\u5230\u6700\u4f73\u5e73\u8861\u70b9<\/li>\n<li>\u667a\u80fd\u544a\u8b66 &#8211; \u901a\u8fc7\u7b97\u6cd5\u51cf\u5c11\u8bef\u62a5&#xff0c;\u63d0\u9ad8\u544a\u8b66\u7cbe\u51c6\u5ea6<\/li>\n<li>\u81ea\u52a8\u5316\u54cd\u5e94 &#8211; \u6784\u5efa\u81ea\u52a8\u5316\u8fd0\u7ef4\u80fd\u529b&#xff0c;\u51cf\u5c11\u4eba\u5de5\u5e72\u9884<\/li>\n<p>\u5b9e\u65bd\u5efa\u8bae&#xff1a;<\/p>\n<li>\u6e10\u8fdb\u5f0f\u5b9e\u65bd &#8211; \u4ece\u6838\u5fc3\u6307\u6807\u5f00\u59cb&#xff0c;\u9010\u6b65\u5b8c\u5584\u76d1\u63a7\u4f53\u7cfb<\/li>\n<li>\u56e2\u961f\u57f9\u8bad &#8211; \u786e\u4fdd\u8fd0\u7ef4\u56e2\u961f\u5177\u5907\u5fc5\u8981\u7684\u6280\u672f\u80fd\u529b<\/li>\n<li>\u6587\u6863\u89c4\u8303 &#8211; \u5efa\u7acb\u5b8c\u5584\u7684\u76d1\u63a7\u6d41\u7a0b\u548c\u5e94\u6025\u54cd\u5e94\u6587\u6863<\/li>\n<li>\u6301\u7eed\u4f18\u5316 &#8211; \u57fa\u4e8e\u76d1\u63a7\u6570\u636e\u6301\u7eed\u6539\u8fdb\u7cfb\u7edf\u67b6\u6784\u548c\u914d\u7f6e<\/li>\n<h4>7.3 \u5c55\u671b\u672a\u6765<\/h4>\n<p>\u968f\u7740\u4e91\u8ba1\u7b97\u3001\u5927\u6570\u636e\u548c\u4eba\u5de5\u667a\u80fd\u6280\u672f\u7684\u53d1\u5c55&#xff0c;SQL Server\u76d1\u63a7\u5c06\u5411\u66f4\u52a0\u667a\u80fd\u5316\u3001\u81ea\u52a8\u5316\u7684\u65b9\u5411\u53d1\u5c55\u3002\u672a\u6765\u7684\u76d1\u63a7\u7cfb\u7edf\u5c06\u5177\u5907&#xff1a;<\/p>\n<ul>\n<li>\u9884\u6d4b\u6027\u5206\u6790\u80fd\u529b &#8211; \u57fa\u4e8e\u5386\u53f2\u6570\u636e\u9884\u6d4b\u6f5c\u5728\u95ee\u9898<\/li>\n<li>\u81ea\u9002\u5e94\u9608\u503c &#8211; \u52a8\u6001\u8c03\u6574\u544a\u8b66\u9608\u503c\u9002\u5e94\u4e1a\u52a1\u53d8\u5316<\/li>\n<li>\u8de8\u5e73\u53f0\u7edf\u4e00\u76d1\u63a7 &#8211; \u652f\u6301\u6df7\u5408\u4e91\u548c\u591a\u6570\u636e\u5e93\u5e73\u53f0<\/li>\n<li>\u4e1a\u52a1\u611f\u77e5\u76d1\u63a7 &#8211; \u5c06\u6280\u672f\u6307\u6807\u4e0e\u4e1a\u52a1\u4ef7\u503c\u76f4\u63a5\u5173\u8054<\/li>\n<\/ul>\n<p>\u5efa\u8bae\u4f01\u4e1a\u5728\u6784\u5efaSQL Server\u76d1\u63a7\u4f53\u7cfb\u65f6&#xff0c;\u4e0d\u4ec5\u8981\u5173\u6ce8\u5f53\u524d\u9700\u6c42&#xff0c;\u66f4\u8981\u8003\u8651\u672a\u6765\u7684\u6269\u5c55\u6027\u548c\u6f14\u8fdb\u80fd\u529b&#xff0c;\u4e3a\u6570\u5b57\u5316\u8f6c\u578b\u5960\u5b9a\u575a\u5b9e\u7684\u6570\u636e\u57fa\u7840\u8bbe\u65bd\u76d1\u63a7\u57fa\u7840\u3002<\/p>\n<hr \/>\n<p>\u53c2\u8003\u8d44\u6e90&#xff1a;<\/p>\n<ul>\n<li>Microsoft SQL Server\u5b98\u65b9\u6587\u6863<\/li>\n<li>SQL Server\u6027\u80fd\u8c03\u4f18\u6700\u4f73\u5b9e\u8df5<\/li>\n<li>\u4f01\u4e1a\u7ea7\u6570\u636e\u5e93\u76d1\u63a7\u89e3\u51b3\u65b9\u6848\u6848\u4f8b<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb692\u6b21\uff0c\u70b9\u8d5e17\u6b21\uff0c\u6536\u85cf17\u6b21\u3002\u5728\u5f53\u4eca\u6570\u636e\u9a71\u52a8\u7684\u5546\u4e1a\u73af\u5883\u4e2d\uff0cSQL Server\u6570\u636e\u5e93\u4f5c\u4e3a\u4f01\u4e1a\u6838\u5fc3\u6570\u636e\u5b58\u50a8\u548c\u5904\u7406\u5e73\u53f0\uff0c\u5176\u7a33\u5b9a\u6027\u548c\u6027\u80fd\u76f4\u63a5\u5f71\u54cd\u4e1a\u52a1\u8fde\u7eed\u6027\u3002\u636e\u7edf\u8ba1\uff0c\u6570\u636e\u5e93\u6545\u969c\u9020\u6210\u7684\u4e1a\u52a1\u635f\u5931\u6bcf\u5c0f\u65f6\u53ef\u8fbe\u6570\u4e07\u81f3\u6570\u767e\u4e07\u5143\uff0c\u56e0\u6b64\u5efa\u7acb\u9ad8\u6548\u7684\u5b9e\u65f6\u76d1\u6d4b\u4f53\u7cfb\u81f3\u5173\u91cd\u8981\u3002<\/p>\n","protected":false},"author":2,"featured_media":44390,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4146,4148,100,4147,78],"topic":[],"class_list":["post-44391","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-sql-server-","tag-4148","tag-100","tag-4147","tag-78"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/44391.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb692\u6b21\uff0c\u70b9\u8d5e17\u6b21\uff0c\u6536\u85cf17\u6b21\u3002\u5728\u5f53\u4eca\u6570\u636e\u9a71\u52a8\u7684\u5546\u4e1a\u73af\u5883\u4e2d\uff0cSQL Server\u6570\u636e\u5e93\u4f5c\u4e3a\u4f01\u4e1a\u6838\u5fc3\u6570\u636e\u5b58\u50a8\u548c\u5904\u7406\u5e73\u53f0\uff0c\u5176\u7a33\u5b9a\u6027\u548c\u6027\u80fd\u76f4\u63a5\u5f71\u54cd\u4e1a\u52a1\u8fde\u7eed\u6027\u3002\u636e\u7edf\u8ba1\uff0c\u6570\u636e\u5e93\u6545\u969c\u9020\u6210\u7684\u4e1a\u52a1\u635f\u5931\u6bcf\u5c0f\u65f6\u53ef\u8fbe\u6570\u4e07\u81f3\u6570\u767e\u4e07\u5143\uff0c\u56e0\u6b64\u5efa\u7acb\u9ad8\u6548\u7684\u5b9e\u65f6\u76d1\u6d4b\u4f53\u7cfb\u81f3\u5173\u91cd\u8981\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/44391.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-18T09:18:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618091754-6852844229ba7.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/44391.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/44391.html\",\"name\":\"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2025-06-18T09:18:01+00:00\",\"dateModified\":\"2025-06-18T09:18:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/44391.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/44391.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/44391.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/44391.html","og_locale":"zh_CN","og_type":"article","og_title":"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u6587\u7ae0\u6d4f\u89c8\u9605\u8bfb692\u6b21\uff0c\u70b9\u8d5e17\u6b21\uff0c\u6536\u85cf17\u6b21\u3002\u5728\u5f53\u4eca\u6570\u636e\u9a71\u52a8\u7684\u5546\u4e1a\u73af\u5883\u4e2d\uff0cSQL Server\u6570\u636e\u5e93\u4f5c\u4e3a\u4f01\u4e1a\u6838\u5fc3\u6570\u636e\u5b58\u50a8\u548c\u5904\u7406\u5e73\u53f0\uff0c\u5176\u7a33\u5b9a\u6027\u548c\u6027\u80fd\u76f4\u63a5\u5f71\u54cd\u4e1a\u52a1\u8fde\u7eed\u6027\u3002\u636e\u7edf\u8ba1\uff0c\u6570\u636e\u5e93\u6545\u969c\u9020\u6210\u7684\u4e1a\u52a1\u635f\u5931\u6bcf\u5c0f\u65f6\u53ef\u8fbe\u6570\u4e07\u81f3\u6570\u767e\u4e07\u5143\uff0c\u56e0\u6b64\u5efa\u7acb\u9ad8\u6548\u7684\u5b9e\u65f6\u76d1\u6d4b\u4f53\u7cfb\u81f3\u5173\u91cd\u8981\u3002","og_url":"https:\/\/www.wsisp.com\/helps\/44391.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2025-06-18T09:18:01+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2025\/06\/20250618091754-6852844229ba7.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"22 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/44391.html","url":"https:\/\/www.wsisp.com\/helps\/44391.html","name":"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2025-06-18T09:18:01+00:00","dateModified":"2025-06-18T09:18:01+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/44391.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/44391.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/44391.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"SQL Server \u6570\u636e\u5e93\u6545\u969c\u4e0e\u6027\u80fd\u9ad8\u6548\u5b9e\u65f6\u76d1\u6d4b\u6280\u672f\u6df1\u5ea6\u89e3\u6790"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/44391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=44391"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/44391\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/44390"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=44391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=44391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=44391"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=44391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}