Policy-Based Management is a feature that is introduced with SQL Server 2008. It allows us to set the rules we want in our systems, to set our standards and to make our controls automatically. For example, we can create a policy for control purposes so that the names of our stored procedures do not start with a number or database recovery models are not simple.
Before reading this article, to understand the concepts of Data File and Filegroup, I recommend that you read the article “How To Create a Database On SQL Server“. You can use the Search section of our website for more information.
To comprehend Policy Based Management (PBM), you need to understand some concepts.
A feature that can be managed by PBM. For example, there is a facet called Data File. And you can use this facet to create a policy that checks if the size of the data files in the database exceeds a certain size.
You can access all facets via SSMS as follows. To access the facet details, you must double-click on it.
Checks whether the sub-property of the related facets provide the specified condition.
Let’s create a policy like we said.
Create a Policy
Right click Policies tab as follows from the Management> Policy tab and click New Policy.
We give a name to Policy on the screen that appears. We need to create a condition from Check Condition.
We’re clicking on New Condition.
We give a name to the condition from the screen that appears.
From the Facet section, we select the Data File facet.
By clicking… in the Expression section, we select @Size, which is the subfeature of the Data File facet.
By selecting <from the Operator section, we write a desired value in the Value section.
10240 means 10 mb.
In other words, if any of the data files in the databases are over 10 mb, the policy will fail. You can set this number to 500 GB. So you can consider partitioning overgrowth tables.
I recommend reading the following articles.
By selecting On Schedule from the Evaluation Mode, we select the interval at which the policy will be checked and then click the Enable check box.
If we choose On Demand, it only checks when we execute policy.
If you have a server-based condition, you can create a server-based condition from the server restriction section.
If you want it to be checked automatically at certain intervals, click New in the Schedule section and determine the frequency that the policy will check the condition. We set it up to work once every day at 12: 00: 000 PM.
We created our policy. We click Evaluate as below to run it manually.
I got a result as follows in my local. As you can see, policy failed because some data files are over 10 mb in size in some databaseses.
When we click on View, we can see why the policy is failed.
When you refresh the instance, a red color x sign appears on the left side of the instance, that looks like the letter. The reason for this is that we have a policy that is failed on the instance. When you see this mark, you must look at the defined policies and fulfill their requirements.
Below you can find other sub features of Data File Facet.
With Policy Based Management, you can check many things on SQL Server. And I think a professional database manager should use this feature that SQL Server offers us. You can find more articles on Policy Based Management at the following links.
“How To Check Auto Close Option of Databases Using Policy Based Management”,
“How To Check Last Log Backup Time Using Policy Based Management”,
“How To Check Page Verify Option of Databases Using Policy Based Management”