Log files are larger than data files
It is not common to have SQL Server log files larger than data files.
If it is, this may indicate a potential problem:
- A possible bad maintenance plan (backups are not being performed correctly).
- There is a process with a massive-sized transaction, or the transaction is never committed.
- SQL Server replication may be broken.
How to find databases with log files larger than database files?
You can use the script below. It will return all databases with log files (over 1GB) larger than the data file.
SELECT DB_NAME(a.database_id) AS DatabaseName
,CAST((CAST(a.size AS BIGINT) * 8 / 1000000) AS NVARCHAR(20)) AS 'LogFileSize_GB'
FROM sys.master_files a
WHERE a.type = 1
AND DB_NAME(a.database_id) > 4
AND a.size > 125000 /* Size is measured in pages here, so this gets us log files over 1GB. */
AND a.size > (
SELECT SUM(CAST(b.size AS BIGINT))
FROM sys.master_files b
WHERE a.database_id = b.database_id
AND b.type = 0
)
AND a.database_id IN (
SELECT database_id
FROM sys.databases
WHERE source_database_id IS NULL
)How can I fix the issue?
To address the issue, follow the instructions provided below:
- Check if you are using the correct recovery model.
- Verify the maintenance plans.
- Shrink the transaction log file.
References:
Speak with a SQL Expert
In just 30 minutes, we will show you how we can eliminate your SQL Server headaches and provide operational peace of mind