- 0 minutes to read

LogLocations - System Parameter

The Nodinite System Parameter LogLocations enables advanced disk volume management for SQL Server, allowing the Logging Service to distribute new Log Databases and associated files across multiple disks in a round-robin pattern. This maximizes throughput and overcomes the default SQL Server GUI limitations, which only allow DATA and LOG location settings.

SQL Server Database Default Locations
Example: SQL Server Database Settings showing the default DATA, LOG, and Backup location limitations. LogLocations parameter provides advanced control beyond these GUI options.

Important

Proper disk configuration can significantly enhance performance and scalability. With LogLocations, you can allocate different file groups to specific disks, reducing contention and optimizing read/write operations.

System Parameter Name Data Type Values/Example Comment
LogLocations JSON JSON object (see example #1 and example #2) Default = null (SQL Server defaults apply)

Why This Matters for Your Business

Optimized Performance – Distribute database workloads across multiple disks to reduce bottlenecks and improve read/write speeds.
Scalability for Large Data Volumes – Ensure your infrastructure can handle increasing data loads without sacrificing performance.
Overcome SQL Server GUI Limitations – Gain fine-grained control over where Nodinite stores its log data, beyond just DATA and LOG.
Improved Resource Utilization – Allocate storage more efficiently, ensuring each disk operates at optimal capacity.
Reduced Risk of Disk I/O Contention – Prevent slowdowns by spreading workloads intelligently across multiple drives.

How It Works

The LogLocations parameter allows custom placement of SQL Server files on different disk volumes for better performance and scalability. It supports structured JSON configurations to control the distribution of the following file groups within a Log Database:

graph TD A[" Logging Service"] --> B{LogLocations
Parameter Set?} B -- No --> C[" SQL Server
Default Locations"] B -- Yes --> D[" Parse JSON
Configuration"] D --> E[" Get Next
Configuration
(LastOrderDeployed)"] E --> F[" Create Log Database
on Target Disks"] F --> G1[" Disk H:
Data Files"] F --> G2[" Disk I:
ImageData Files"] F --> G3[" Disk G:
Log Files"] F --> H[" Increment
LastOrderDeployed"] H --> E style A fill:#87CEEB style B fill:#FFD700 style C fill:#FF6B6B style D fill:#90EE90 style E fill:#90EE90 style F fill:#90EE90 style G1 fill:#90EE90 style G2 fill:#90EE90 style G3 fill:#90EE90 style H fill:#87CEEB

Diagram: LogLocations workflow showing how the Logging Service distributes new Log Databases across multiple disks using round-robin configuration rotation.

  • Data – Main database storage.
  • ImageData – Stores payloads outside of the Events table to reduce fragmentation.
  • Index – Optimized for clustered indexes and additional indexing.
  • Primary – SQL default (not used by Nodinite).
  • Log – Transaction log (recommended to run in Simple Recovery Mode).

The LastOrderDeployed field ensures a balanced distribution across multiple disk volumes, following a zero-based index. The system automatically manages the incremented recycling assignment.

graph LR subgraph "Traditional SQL Server Approach" SQL1[" SQL Server
GUI Limitations"] SQL2[" DATA Path"] SQL3[" LOG Path"] SQL1 --> SQL2 SQL1 --> SQL3 end subgraph "Nodinite LogLocations Approach" NIT1[" JSON Configuration"] NIT2[" Disk H: - Data"] NIT3[" Disk I: - ImageData"] NIT4[" Disk K: - Index"] NIT5[" Disk G: - Log"] NIT1 --> NIT2 NIT1 --> NIT3 NIT1 --> NIT4 NIT1 --> NIT5 end style SQL1 fill:#FF6B6B style SQL2 fill:#FF6B6B style SQL3 fill:#FF6B6B style NIT1 fill:#90EE90 style NIT2 fill:#90EE90 style NIT3 fill:#90EE90 style NIT4 fill:#90EE90 style NIT5 fill:#90EE90

Diagram: Comparison showing SQL Server's default 2-path limitation (DATA and LOG only) versus Nodinite's LogLocations feature enabling granular file group distribution across multiple disks for maximum performance.

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 4th disk (N:).

graph TD A[" New Log Database"] --> B{Check
LastOrderDeployed} B -- Order 0 --> C0[" Configuration 0"] C0 --> D0K[" K: Drive
Data Files"] C0 --> D0L[" L: Drive
ImageData Files"] C0 --> D0M[" M: Drive
Index Files"] C0 --> D0N[" N: Drive
Primary + Log"] C0 --> INC0[" Set LastOrderDeployed = 1"] B -- Order 1 --> C1[" Configuration 1"] C1 --> D1M[" M: Drive
Data Files"] C1 --> D1K[" K: Drive
ImageData Files"] C1 --> D1L[" L: Drive
Index Files"] C1 --> D1N[" N: Drive
Primary + Log"] C1 --> INC1[" Set LastOrderDeployed = 2"] B -- Order 2 --> C2[" Configuration 2"] C2 --> D2L[" L: Drive
Data Files"] C2 --> D2M[" M: Drive
ImageData Files"] C2 --> D2K[" K: Drive
Index Files"] C2 --> D2N[" N: Drive
Primary + Log"] C2 --> INC2[" Reset LastOrderDeployed = 0"] INC0 --> E[" Database Created"] INC1 --> E INC2 --> E style A fill:#87CEEB style B fill:#FFD700 style C0 fill:#90EE90 style C1 fill:#90EE90 style C2 fill:#90EE90 style D0K fill:#90EE90 style D0L fill:#90EE90 style D0M fill:#90EE90 style D0N fill:#87CEEB style D1M fill:#90EE90 style D1K fill:#90EE90 style D1L fill:#90EE90 style D1N fill:#87CEEB style D2L fill:#90EE90 style D2M fill:#90EE90 style D2K fill:#90EE90 style D2N fill:#87CEEB style INC0 fill:#87CEEB style INC1 fill:#87CEEB style INC2 fill:#FFD700 style E fill:#90EE90

Diagram: Round-robin rotation pattern showing how three configurations distribute Data, ImageData, and Index file groups across K:, L:, and M: drives while keeping Primary and Log files on N: drive. Each new Log Database cycles to the next configuration.

{
	"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
}

History

  • The System Parameter was renamed from ImLogLocations in Nodinite version 7 New 7.x.
  • This feature was introduced in Nodinite version 4 New 4.3.0.26.

Frequently asked questions

Find more solutions and answers in the Nodinite System Parameters FAQ and 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.

LogLocations System Parameter Configuration
Screenshot: Managing the LogLocations system parameter in Nodinite v7. The JSON configuration overrides default SQL Server storage locations for new Log Databases.


Next Step

Administration