Infrastructure at your Service

All Posts By

Stéphane Haby

Stéphane Haby

How to find the TLS used for the SQL Server connection

By | Database Administration & Monitoring, Database management, Security, SQL Server | No Comments

For a customer, I do some research to find which TLS is used on the SQL Server environment. The only way is to create an Extended Event. A big limitation is that the event used is only available on SQL Server 2016 and +. Before use the Built-In Diagnostics (BID) traces. After I implanted the first TLS Monitoring on  a SQL Server 2016 with the query: CREATE EVENT SESSION [TLS_monitoring] ON SERVER              ADD EVENT…

Read More
Stéphane Haby

How to view and change SQL Server Agent properties with T-SQL queries

By | Database Administration & Monitoring, Database management | No Comments

Few days ago, after a reboot, we had this warning on the Agent Error Logs on many servers: Warning [396] An idle CPU condition has not been defined – OnIdle job schedules will have no effect “The CPU idle definition influences how Microsoft SQL Server Agent responds to events. For example, suppose that you define the CPU idle condition as when the average CPU usage falls below 10 percent and remains at this level for…

Read More
Stéphane Haby

SQL Server: Using Client Statistics to validate a query regression after a change in the database compatibility level

By | Database Administration & Monitoring, Database management, Development & Performance | No Comments

Few days ago, I have very poor performance on a database that I migrate from SQL 2012 to SQL 2019. The developer Team asks me to upgrade the number of CPU and the Memory to have better performance. First, I ask the Team to give me some queries sample to test the performance between the old environment in SQL server 2012 and the new one in SQL server 2019. To do the test, I use…

Read More
Stéphane Haby

SQL Server: “Cannot resolve the collation conflict” in a Stored Procedure

By | Database Administration & Monitoring | No Comments

This week I have a new little challenge by a customer. By executing a “standard” stored procedure, I have the error: Msg 468, Level 16, State 9, Procedure Get_logsessions, Line 56 [Batch Start Line 119] Cannot resolve the collation conflict between “Latin1_General_CI_AS” and “Latin1_General_CI_AS_KS_WS” in the equal to operation. The Stored Procedure named Get_Logsessions is to log all sessions running on the server in a table. Looking with the query I develop and present you…

Read More
Stéphane Haby

SQL Server SCOM database: A lot of errors 777970008 in the errorlog file

By | Database Administration & Monitoring | No Comments

Few weeks ago, during a audit, I have a lot of error 777970008 in the errorlog file from the SCOM instance. All 5 minutes, we had 4 lines more in the ErrorLog and the file growth a lot. After using google to find a cause of this message and resolve it, I finally find a good blog from Kevin Holman. I downloaded the script here and executed the part for the error 777970008 only: DECLARE…

Read More
Stéphane Haby

SQL Server 2019: What’s new on database scoped configuration options?

By | Database management, SQL Server, Technology Survey | No Comments

SQL Server 2019 added three new options in sp_configure and sys.configurations. First, how can we find the difference between these SQL Server Versions. This simple query will give us the number of options and the SQL Server Version: select count(*) as number_of_configurations, @@version FROM sys.database_scoped_configurations In SQL server 2016, we have 4 parameters for the database configuration: In SQL server 2017, we have 5 parameters for the database configuration: In SQL server 2019, we have…

Read More
Stéphane Haby

SQL Server 2019: What’s new in sp_configure and sys.configurations options?

By | Database Administration & Monitoring, Database management, SQL Server, Technology Survey | No Comments

SQL Server 2019 added new options in sp_configure and sys.configurations. First, how can we find the difference between these SQL Server Versions. This simple query will give us the number of options and the SQL Server Version: select count(*),@@version FROM sys.configurations In SQL server 2016, we have 74 parameters for the instance configuration: In SQL server 2017, we have 77 parameters for the instance configuration: In SQL server 2019, we have 84 parameters for the…

Read More
Stéphane Haby

SQL Server SCOM Alert Analysis: The Average Wait Time of SQL instance “xxx” on computer “xxx” is too high

By | Database Administration & Monitoring, Database management, Development & Performance, SQL Server | No Comments

I have an interested alert on SCOM for SQL Server by a customer two weeks ago. In the SCOM interface, the warning on the server is MSSQL2016: The Average Wait Time of SQL instance “xxx” on computer “xxx” is too high. After right-click on the properties, go to the tab Alert Context. On this part, you can see that the Object Name is MSSQL$xxx:Locks. My first step is to go in the Reports>Standard Reports> Performance…

Read More
Stéphane Haby

SQL Server SCOM: Many perf.perfHourly and State.StateHourly tables in OperationManagerDW

By | Database Administration & Monitoring, Database management, Development & Performance, SQL Server | No Comments

By a customer, the SCOM’s Database OperationManagerDW growth fast and becomes very big. To see what’s happens, in SSMS (SQL Server Management Studio), I right-click on the database open Reports>Standard Report> Disk Usage by Top Tables: You have many interesting reports with SSMS and I advise you to use it. In my case the “Disk Usage by Top Tables” report displays me many perf.perfHourly and State.StateHourly tables with a _guid(): After reading some blog’s, the…

Read More
Stéphane Haby

SQL Server: How to compare Server and Database Collation

By | Database Administration & Monitoring, Database management, SQL Server | No Comments

Sometimes during an SQL Server audit, I check the collation of the server and the databases but every time separately. The goal of this blog is to give you a script to have both and compare it. First step is to have the server collation and the code page. The code page will help to see if the character set is the same. For example, for us, the 1252 is Latin/Western European and the 1258…

Read More