- 3 minutes to read

ImLogLocations - System Parameter

The System parameter ImLogLocations is used to override the limited default locations of SQL Server and allows the Logging Service to create new Log Databases and/or files to be placed on different disks with a round-robin pattern.

As you can see from the example image below, SQL Server has limited GUI options to determine which disks to use for DATA and Log.
SQL Server default disk location settings
Here's an example of default settings, image from SQL Server instance properties

System Parameter Name Data Type Values/Example Comment
ImLogLocations json json object as exemplified later on this page Default = null (SQL Server default settings apply)

This feature was introduced with version 4.3.0.26

JSON Structure and Examples

The Log Database has been designed to utilize multiple logical disks for different file groups to scale and to improve performance where needed. The following file groups exist for the Log Database:

  • Data
  • ImageData - Nodinite stores the payload of messages on SQL Pages outside of the Events table to limit fragmentation and pages used
  • Index - For use with clustered indexes and other indexes
  • Primary - SQL Default, Nodinite does not use this file group at all
  • Log - Transaction Log (Since we recommend Simple recovery mode this file should only grow during large delete operations) - Shrink as you like

The LastOrderDeployed is a positive zero (0) based value indicating which item in the array to use. The max value must therefore be several items in the array - 1.

Simple example with 1 disk to override the default SQL Path

data, index, imagedata and log are placed on the same disk H:.

{
	"Configurations": [{
		"CustomPathData": "H:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "H:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "H:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "H:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "H:\\MSSQLSERVER\\LOG\\",
		"Order": 0
	}],
	"LastOrderDeployed": 0
}

Advanced example using 4 disks in 3 rotating groups

data, index and imagedata rotate over 3 disks (K:, L: and M:) and the primary and transaction log is placed on the 4:th disk (N:).

{
	"Configurations": [{
		"CustomPathData": "K:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "L:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "M:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
		"Order": 0
	},
	{
		"CustomPathData": "M:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "K:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "L:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
		"Order": 1
	},
	{
		"CustomPathData": "L:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "M:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "K:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
		"Order": 2
	}],
	"LastOrderDeployed": 0
}

Frequently asked questions

Additional solutions to common problems and the Nodinite System Parameters FAQ exist in the Troubleshooting user guide.

How do I change the value?

Changing a value for the pre-defined System Parameters is described in the generic 'How do I change the System Parameters' article.


Next Step

Administration