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.

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:
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.
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:).
LastOrderDeployed}
B -- Order 0 --> C0[" Configuration 0"]
C0 --> D0K[" K: Drive<br/>Data Files"]
C0 --> D0L[" L: Drive<br/>ImageData Files"]
C0 --> D0M[" M: Drive<br/>Index Files"]
C0 --> D0N[" N: Drive<br/>Primary + Log"]
C0 --> INC0[" Set LastOrderDeployed = 1"]
B -- Order 1 --> C1[" Configuration 1"]
C1 --> D1M[" M: Drive<br/>Data Files"]
C1 --> D1K[" K: Drive<br/>ImageData Files"]
C1 --> D1L[" L: Drive<br/>Index Files"]
C1 --> D1N[" N: Drive<br/>Primary + Log"]
C1 --> INC1[" Set LastOrderDeployed = 2"]
B -- Order 2 --> C2[" Configuration 2"]
C2 --> D2L[" L: Drive<br/>Data Files"]
C2 --> D2M[" M: Drive<br/>ImageData Files"]
C2 --> D2K[" K: Drive<br/>Index Files"]
C2 --> D2N[" N: Drive<br/>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
ImLogLocationsin 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.

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