Hans Karlsen (talk | contribs) No edit summary |
Hans Karlsen (talk | contribs) No edit summary |
||
Line 17: | Line 17: | ||
In sqlServer you can use this script to find where you have the most rows in your historyserver - this may be a good indicator if you need thinning: | In sqlServer you can use this script to find where you have the most rows in your historyserver - this may be a good indicator if you need thinning: | ||
<pre> | |||
SELECT | |||
t.NAME AS TableName, | |||
s.Name AS SchemaName, | |||
p.rows, | |||
SUM(a.total_pages) * 8 AS TotalSpaceKB, | |||
CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB, | |||
SUM(a.used_pages) * 8 AS UsedSpaceKB, | |||
CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, | |||
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, | |||
CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB | |||
FROM | |||
sys.tables t | |||
INNER JOIN | |||
sys.indexes i ON t.OBJECT_ID = i.object_id | |||
INNER JOIN | |||
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id | |||
INNER JOIN | |||
sys.allocation_units a ON p.partition_id = a.container_id | |||
LEFT OUTER JOIN | |||
sys.schemas s ON t.schema_id = s.schema_id | |||
WHERE | |||
t.NAME NOT LIKE 'dt%' | |||
AND t.is_ms_shipped = 0 | |||
AND i.OBJECT_ID > 255 | |||
GROUP BY | |||
t.Name, s.Name, p.Rows | |||
ORDER BY | |||
p.rows DESC, t.Name | |||
</pre> |
Revision as of 11:25, 8 October 2021
Read here on why you want a History slave server - Purpose of History Server
Recent changes makes it possible to use SQLCompact to test the MDriven History server - but you will most likely need more space than what SQL compact can handle.
Steps:
- On the main MDrivenServer:
- Ensure MDrivenServerSynk
- Switch from "Normal" to "Master"
- Copy/backup the database from the master - restore it in second MDrivenServer.
- In Second MDrivenServer change mode to "History Slave"
- In History Slave ensure Version compatible
- In History point out the master MDrivenServer and set user and pwd for master.
Test by making changes towards Master - within short changes show up in History slave
Thinning and truncating a History server
On classes set tagged value NoHistory=true to make HistoryServer skip this class for versioning. This may be desirable when having fast moving reference data you do not own - like daily imports from other systems that you do not deem important enough to track.
In sqlServer you can use this script to find where you have the most rows in your historyserver - this may be a good indicator if you need thinning:
SELECT t.NAME AS TableName, s.Name AS SchemaName, p.rows, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB, SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255 GROUP BY t.Name, s.Name, p.Rows ORDER BY p.rows DESC, t.Name