shortened longest description

This commit is contained in:
Alex Protsenko
2020-01-30 19:10:08 +03:00
committed by GitHub
parent f89aa1f857
commit 9639c53d2c
@@ -118,7 +118,7 @@ HypotheticalStatistics,Warning,Hypothetical statistics found,Statistics @{StatNa
LatestCU,Warning,SQL Server instance is not up to date,Product version @{ProductVersion} is not the latest available. We recommend keeping your SQL Server up to date and install Service Packs and Cumulative Updates as they are released.,"['DefaultRuleset', 'Security', 'UpdateIssues']","On an installed instance of SQL Server, we recommend that you apply the latest security updates and critical updates including general distribution releases (GDRs), service packs (SPs), and cumulative updates (CUs).","https://support.microsoft.com/help/321185/how-to-determine-the-version-edition-and-update-level-of-sql-server-an, https://docs.microsoft.com/sql/database-engine/install-windows/install-sql-server-servicing-updates",['SQLServerVersion'],Server,/^(Windows|Linux)$/,OnPremises,"[11.0,)",,
FKNoIndexes,Warning,Foreign key constraints should have corresponding indexes,Create a corresponding index for each foreign key. There is no index on the following foreign keys: @{ConstraintName}.,"['DefaultRuleset', 'Performance', 'Indexes']","Unlike primary key constraints, creating a foreign key constraint does not automatically create a corresponding index. However, manually creating an index on a foreign key is often useful.",https://docs.microsoft.com/sql/relational-databases/tables/primary-and-foreign-key-constraints,['FKNoIndexes'],Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",/^(master|model|msdb|tempdb)$/,
MissedIndexes,Information,Potentially missing indexes,Create an index on @{Table} with key columns @{KeyCols}@{IncludedCols: and included columns: #},"['DefaultRuleset', 'Performance', 'Indexes']",Potentially missing indexes were found based on query history. It may be important to revise them.,https://docs.microsoft.com/sql/relational-databases/sql-server-index-design-guide,['MissedIndexes'],Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",/^(master|model|msdb|tempdb)$/,
FullBackup,Warning,Full backup is missed or outdated,The last full backup had been created more than @{threshold} days ago. Create a new full backup.,"['DefaultRuleset', 'Backup']",Database doesn't have any full backup or the latest full backup is over 7 days.,https://docs.microsoft.com/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server,['DatabaseBackups'],Database,/^(Windows|Linux)$/,OnPremises,"[11.0,)",/^(model|tempdb)$/,7.0
FullBackup,Warning,Full backup is missed or outdated,The last full backup had been created more than @{threshold} days ago. Create a new full backup.,"['DefaultRuleset', 'Backup']",Database doesn't have any full backup or the latest full backup is over 7 days.,https://docs.microsoft.com/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server,['DatabaseBackups'],Database,/^(Windows|Linux)$/,OnPremises,"[11.0,)",/^(model|tempdb)$/,7
OutdatedTranLogBackup,Warning,Transaction Log backup is missed or outdated,Create a backup of Transaction Log. Database recovery model: @{recovery_model_desc},"['DefaultRuleset', 'Backup']","Database does not have any transaction Log backup since the latest full or differential backup, or it's older than 24H.",https://docs.microsoft.com/sql/relational-databases/backup-restore/back-up-a-transaction-log-sql-server,['DatabaseBackups'],Database,/^(Windows|Linux)$/,OnPremises,"[11.0,)",/^(master|model|msdb|tempdb)$/,
DbDiffCollation,Warning,Database collation doesn't match the collation of master,Keep database collation the same as the collation for master or model,"['DefaultRuleset', 'DBConfiguration', 'Collation']","We recommend that the collations of user-defined databases match the collation of master or model. Otherwise, collation conflicts can occur that might prevent code from executing. For example, when a stored procedure joins one table to a temporary table, SQL Server might end the batch and return a collation conflict error if the collations of the user-defined database and the model database are different. This occurs because temporary tables are created in tempdb, which bases its collation on that of model.",https://docs.microsoft.com/sql/database-engine/set-collation-user-defined-databases-match-master-model-databases,['DatabaseConfiguration'],Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,
AutoClose,Warning,Auto Close Option should be OFF,Set AUTO_CLOSE option to OFF,"['DefaultRuleset', 'Performance', 'DBConfiguration']","When AUTO_CLOSE is set ON, this can cause performance degradation on frequently accessed databases because of the increased overhead of opening and closing the database after each connection. AUTO_CLOSE also flushes the procedure cache after each connection.",https://docs.microsoft.com/sql/relational-databases/policy-based-management/set-the-auto-close-database-option-to-off,['DatabaseConfiguration'],Database,/^(Windows|Linux)$/,OnPremises,"[11.0,)",/^(master|msdb|tempdb)$/,
@@ -139,7 +139,7 @@ FilesAutogrowth,Warning,Database files have Autogrowth setting over 1GB,Set File
DuplicateIndexes,Warning,There are tables with duplicate indexes,Consider removing duplicate indexes in table @{Table}: @{ToDelete},"['DefaultRuleset', 'Performance', 'Indexes']",There are tables with duplicate indexes according to their definitions. We recommended to revise all these objects as soon as possible.,https://docs.microsoft.com/sql/relational-databases/sql-server-index-design-guide,"[{'id': 'IndexesDefinitions', 'transform': {'type': 'duplicateIndexes'}}]",Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",/^(master|model|msdb|tempdb)$/,
RedundantIndexes,Warning,There are tables with possibly redundant indexes,Consider removing redundant indexes in table @{Table}: @{Indexes},"['DefaultRuleset', 'Performance', 'Indexes']",There are tables with possibly redundant indexes according to the set of key and included columns. We recommended to revise all these objects as soon as possible.,https://docs.microsoft.com/sql/relational-databases/sql-server-index-design-guide,"[{'id': 'IndexesDefinitions', 'transform': {'type': 'redundantIndexes'}}]",Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",/^(master|model|msdb|tempdb)$/,
UserObjectsInMaster,Warning,User objects in database master,Remove user objects from database master: @{Object_Name},"['DefaultRuleset', 'masterDB', 'Backup']","We highly recommend you not create user objects in the master database. If it's unavoidable for some reason, make sure to back up the database more frequently.",https://docs.microsoft.com/sql/relational-databases/databases/master-database,['UserObjectsCountInMasterDB'],Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,
HighCPUUsage,Warning,High CPU usage on server,"Investigate high CPU utilization on server hosting this instance. Last 2 hours: total CPU usage is ~@{AVGTotalCPUUsage}%, usage by SQL Server is ~@{AVGSQLCPUUsage}%","['DefaultRuleset', 'Performance', 'CPU']","Keeping CPU usage rates within normal ranges is vital for servers hosting SQL Server instances. A continually high rate of CPU usage may indicate the need to upgrade the CPU or add multiple processors. Alternatively, a high CPU usage rate may indicate a poorly tuned or designed application. Optimizing the application can lower CPU utilization.",https://docs.microsoft.com/sql/relational-databases/performance-monitor/monitor-cpu-usage,['CpuUsage'],Server,Windows,"OnPremises, ManagedInstance","[11.0,)",,70.0
HighCPUUsage,Warning,High CPU usage on server,"Investigate high CPU utilization on server hosting this instance. Last 2 hours: total CPU usage is ~@{AVGTotalCPUUsage}%, usage by SQL Server is ~@{AVGSQLCPUUsage}%","['DefaultRuleset', 'Performance', 'CPU']","Keeping CPU usage rates within normal ranges is vital for servers hosting SQL Server instances. A continually high rate of CPU usage may indicate the need to upgrade the CPU or add multiple processors. Alternatively, a high CPU usage rate may indicate a poorly tuned or designed application. Optimizing the application can lower CPU utilization.",https://docs.microsoft.com/sql/relational-databases/performance-monitor/monitor-cpu-usage,['CpuUsage'],Server,Windows,"OnPremises, ManagedInstance","[11.0,)",,70
ReplErrors24H,Warning,Replication errors in the last 24 hours,Review replication errors for the following publications: @{publication},"['DefaultRuleset', 'Replication']",This check searches for errors in distribution database agent's history table for the last 24 hours.,https://docs.microsoft.com/sql/relational-databases/replication/sql-server-replication,['ReplicationErrors'],Server,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,
AgentAlertsSeverity10,Warning,Agent doesn't rise alerts for errors with severity 10,Consider creating alerts for the following errors: @{error_ids},"['DefaultRuleset', 'Agent']","Events are generated by SQL Server and entered into the Microsoft Windows application log. SQL Server Agent reads the application log and compares events written there to alerts that you have defined. When SQL Server Agent finds a match, it fires an alert, which is an automated response to an event. In addition to monitoring SQL Server events, SQL Server Agent can also monitor performance conditions and Windows Management Instrumentation (WMI) events.",https://docs.microsoft.com/sql/ssms/agent/alerts,['SysAlerts'],Server,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,
AgentAlertsSeverity16,Warning,Agent doesn't rise alerts for errors with severity 16,Consider creating alerts for the following errors: @{error_ids},"['DefaultRuleset', 'Agent']","Events are generated by SQL Server and entered into the Microsoft Windows application log. SQL Server Agent reads the application log and compares events written there to alerts that you have defined. When SQL Server Agent finds a match, it fires an alert, which is an automated response to an event. In addition to monitoring SQL Server events, SQL Server Agent can also monitor performance conditions and Windows Management Instrumentation (WMI) events.",https://docs.microsoft.com/sql/ssms/agent/alerts,['SysAlerts'],Server,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,
@@ -155,14 +155,14 @@ VLFCount,Warning,VLF count,Update transaction log settings to reduce the number
If the log files grow to a large size in many small increments, they will have many virtual log files. This can slow down database startup and also log backup and restore operations. Conversely, if the log files are set to a large size with few or just one increment, they will have few very large virtual log files.
We recommend that you assign log files a size value close to the final size required, using the required increments to achieve optimal VLF distribution, and also have a relatively large growth_increment value.",https://docs.microsoft.com/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide,"[{'id': 'VLF', 'transform': {'type': 'aggregate', 'map': {'RecoveryUnitId': {'type': 'count', 'distinct': False}}}}]",Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,50.0
We recommend that you assign log files a size value close to the final size required, using the required increments to achieve optimal VLF distribution, and also have a relatively large growth_increment value.",https://docs.microsoft.com/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide,"[{'id': 'VLF', 'transform': {'type': 'aggregate', 'map': {'RecoveryUnitId': {'type': 'count', 'distinct': False}}}}]",Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,50
TF8015,Warning,TF 8015 disables auto-detection and NUMA setup,Disable trace flag 8015 for this SQL Server instance. This TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'CPU', 'NUMA']","SQL Server allows you to group CPUs into nodes referred to as soft-NUMA. You usually configure soft-NUMA when you have many CPUs and do not have hardware NUMA, but you can also use soft-NUMA to subdivide hardware NUMA nodes into smaller groups.",https://techcommunity.microsoft.com/t5/SQL-Server-Support/How-It-Works-Soft-NUMA-I-O-Completion-Thread-Lazy-Writer-Workers/ba-p/316044,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,11.0.3349)",,
TF8032,Warning,TF 8032 reverts the cache limit parameters to the SQL Server 2005 RTM,The cache limit parameters reverted to the SQL Server 2005 RTM setting but can cause poor performance if large caches make less memory available for other memory consumers like BP,"['DefaultRuleset', 'TraceFlag', 'Performance']",Trace Flag 8032 reverts the cache limit parameters to the SQL Server 2005 RTM setting but can cause poor performance if large caches make less memory available for other memory consumers like BP.,,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,)",,
TF8744,Warning,TF 8744 disables pre-fetching for the Nested Loop operator,Disable trace flag 8744 for this SQL Server instance. This TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance']",Trace flag 8744 disables pre-fetching for the Nested Loops operator. Incorrect use of this trace flag may cause additional physical reads when SQL Server executes plans that contain the Nested Loops operator.,https://support.microsoft.com/help/920093/tuning-options-for-sql-server-when-running-in-high-performance-workloa,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,12.0)",,
TF9347,Warning,TF 9347 disables batch mode for sort operator,Disable trace flag 9347 for this SQL Server instance. This TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance']",Trace flag 9347 disables batch mode for sort operator. SQL Server 2016 (13.x) introduced a new batch mode sort operator that boosts performance for many analytical queries.,,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,13.0)",,
TF9349,Warning,TF 9349 disables batch mode for top N sort operator,Disable trace flag 9349 for this SQL Server instance. This TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance']",Trace flag 9349 disables batch mode for top N sort operator. SQL Server 2016 (13.x) introduced a new batch mode top sort operator that boosts performance for many analytical queries.,,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,13.0)",,
TF9389,Warning,TF 9389 enables dynamic memory grant for batch mode operators,Disable trace flag 9389 for this SQL Server instance. The TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance', 'TempDB']","Trace flag 9389 enables additional dynamic memory grant for batch mode operators. If a query does not get all the memory it needs, it spills data to TempDB, incurring additional I/O and potentially impacting query performance. If the dynamic memory grant trace flag is enabled, a batch mode operator may ask for additional memory and avoid spilling to TempDB if additional memory is available.",,['EnabledGlobalTraceFlags'],Server,Windows,"OnPremises, ManagedInstance","[11.0,13.0)",,
TF9476,Warning,TF 9476 causes SQL Server to generate a plan using the Simple Containment instead of the default Base Containment under New CE,Disable trace flag 9476 for this SQL Server instance. The TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance', 'QueryOptimizer']","Trace flag 9476 causes SQL Server to generate a plan using the Simple Containment assumption instead of the default Base Containment assumption, under the query optimizer cardinality estimation model of SQL Server 2014 (12.x) through SQL Server 2017 versions.",,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,13.0)",,
TF9476,Warning,TF 9476 causes SQL Server to generate a plan using the Simple Containment,Disable trace flag 9476 for this SQL Server instance. The TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance', 'QueryOptimizer']","Trace flag 9476 causes SQL Server to generate a plan using the Simple Containment assumption instead of the default Base Containment assumption, under the query optimizer cardinality estimation model of SQL Server 2014 (12.x) through SQL Server 2017 versions.",,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,13.0)",,
TF9481,Warning,"TF 9481 enables Legacy CE model, irrespective of the compatibility level of the database",Disable trace flag 9481 for this SQL Server instance. The TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'QueryOptimizer', 'Performance']","Trace flag 9481 enables you to set the query optimizer cardinality estimation model to the SQL Server 2012 (11.x) and earlier versions, irrespective of the compatibility level of the database.",,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,12.0)",,
TF10204,Warning,TF 10204 disables merge/recompress during columnstore index reorganization,Disable trace flag 10204 for this SQL Server instance. The TF does not apply to this SQL Server version,"['DefaultRuleset', 'TraceFlag', 'Performance', 'ColumnStore']","Trace flag 10204 disables merge/recompress during columnstore index reorganization. In SQL Server 2016 (13.x), when a columnstore index is reorganized, there is new functionality to automatically merge any small compressed rowgroups into larger compressed rowgroups, as well as recompressing any rowgroups that have a large number of deleted rows.",,['EnabledGlobalTraceFlags'],Server,Windows,OnPremises,"[11.0,13.0)",,
SPNaming,Warning,Stored Procedure Naming,Rename the following stored procedures to get rid of the sp_ prefix: @{ObjectName},"['DefaultRuleset', 'Naming']","In SQL Server, the sp_ prefix designates system stored procedures. If you use that prefix for your stored procedures, the name of your procedure might conflict with the name of a system stored procedure that will be created in the future. If such a conflict occurs, your application might break if your application refers to the procedure without qualifying the reference by schema. In this situation, the name will bind to the system procedure instead of to your procedure.",https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2010/dd172115(v=vs.100),['BadNamingSP'],Database,/^(Windows|Linux)$/,"OnPremises, ManagedInstance","[11.0,)",,
1 id level displayName message tags description helpLink probes target.type target.platform target.engineEdition target.version target.name.not threshold
118 TableNoIndex Warning Tables without indexes Review table @{TableName} and create reasonable indexes ['DefaultRuleset', 'Indexes', 'Performance'] Each table in the database has one or more pages. To keep track of those pages, SQL Server uses a special set of pages, called IAM (for Index Allocation Map) pages. In spite of the word “Index” in the name, IAMs are used for non-indexed tables as well. These are called heaps. All the data is there, but the only way to find anything is to read it starting at the beginning. For a very large table, this will be terribly inefficient. https://docs.microsoft.com/sql/relational-databases/indexes/heaps-tables-without-clustered-indexes ['TableIndexes'] Database /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,) /^(master|tempdb|model|msdb)$/
119 TableNoClusteredIndex Warning Tables without clustered indexes Review table @{TableName} and consider creating a clustered index ['DefaultRuleset', 'Indexes', 'Performance'] Tables without clustered indexes are called heaps. They’re scattered on disk anywhere that SQL Server can find a spot, and they’re not stored in any order whatsoever. This can make for really fast inserts – SQL Server can just throw the data down – but slow selects, updates, and deletes. https://docs.microsoft.com/sql/relational-databases/indexes/heaps-tables-without-clustered-indexes ['TableIndexes'] Database /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,) /^(master|tempdb|model|msdb)$/
120 TablePSAlign Warning Table index not aligned with PS Consider recreating index @{IndexName} in table @{TableName} to have it aligned with your schema ['DefaultRuleset', 'Indexes', 'Performance'] Table partitioning is a complex way to break out your large tables into smaller, more manageable chunks, but it comes with a lot of management heartache. One of the challenges is making sure that your indexes are partitioned and aligned the same way as your clustered index. https://docs.microsoft.com/sql/relational-databases/partitions/partitioned-tables-and-indexes ['TableIndexesPartitioned'] Database /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,) /^(master|tempdb|model|msdb)$/
121 LoginNoPassword Warning Logins with no passwords Make sure to set strong passwords on the following logins: @{PasswordData} ['DefaultRuleset', 'Security', 'WeakPassword'] Password complexity policies are designed to deter brute force attacks by increasing the number of possible passwords. https://docs.microsoft.com/sql/relational-databases/security/password-policy ['NullPassword'] Server /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,)
122 LoginEqPassword Warning Logins with passwords that are same as the login names Please review logins with password equals to login: @{PasswordData} ['DefaultRuleset', 'Security', 'WeakPassword'] Password complexity policies are designed to deter brute force attacks by increasing the number of possible passwords. https://docs.microsoft.com/sql/relational-databases/security/password-policy ['NamePassword'] Server /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,)
123 SystemHealth Warning System Health important messages Error @{Error_Number} has occured @{Error_Count} times. Last time was @{Last_Logged_Days_Ago} days ago ['DefaultRuleset', 'XEvent', 'SystemHealth', 'Performance'] The system_health session is an Extended Events session that is included by default with SQL Server. This session starts automatically when the SQL Server Database Engine starts, and runs without any noticeable performance effects. The session collects system data that you can use to help troubleshoot performance issues in the Database Engine https://docs.microsoft.com/sql/relational-databases/extended-events/use-the-system-health-session ['SystemHealth'] Server /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,)
124 RarelyUsedIndex Warning Rarely used index Make sure you need index @{IndexName} as it's used too rarely ['DefaultRuleset', 'Indexes', 'Performance'] Rarely used indexes can slow down database's performance. Time of write operations is increased because of index maintenance, but index is not used quite often. It makes sense to compare impact of writing operations versus rare reading speedup. https://docs.microsoft.com/sql/t-sql/statements/drop-index-transact-sql ['IndexesDefinitions'] Database /^(Windows|Linux)$/ OnPremises, ManagedInstance [11.0,) /^(master|model|msdb|tempdb)$/
139
140
141
142
143
144
145
155
156
157
158
159
160
161
162
163
164
165
166
167
168