Any thoughts on the best way (in terms of SQL Server streamlining) for this little issue.
Got a program that at the moment sends the following every 30 seconds from the program to the SQL Server:
1,###,GetDate()
2,###,GetDate()
3,###,GetDate()
Where ### is a number between 000 and 999.
This sequence of numbers can be sent from about 50 machines around the UK, and every 30 seconds it's always 3 records.
In short this means that at the end of, say, today, I'll have:
6 records per machine every minute (300 records),
360 records per machine every hour (18,000 records),
8640 records per machine every day (432,000 records).
And all this data needs to be saved month to month which is about 259,200 records per machine or a nice beefy 12,960,000 records for all machines per month!!!
What I was therefore thinking was, to reduce this number by a third and have a field like:
1=###|2=###|3=####, GetDate()
Because GetDate would be the same for all 3 records anyway, and the 3 individual records could be entered into one field where I can Split() them at a later date to acquire historic data.
Rather than a:
SELECT * FROM HistoricData WHERE [Field2]=###
I could have:
SELECT * FROM HistoricData WHERE [NewField] LIKE '%2=###%'
Would saving the data my new proposed way have much of an impact on the Server or should we be looking at any other ways of saving this data?
Got a program that at the moment sends the following every 30 seconds from the program to the SQL Server:
1,###,GetDate()
2,###,GetDate()
3,###,GetDate()
Where ### is a number between 000 and 999.
This sequence of numbers can be sent from about 50 machines around the UK, and every 30 seconds it's always 3 records.
In short this means that at the end of, say, today, I'll have:
6 records per machine every minute (300 records),
360 records per machine every hour (18,000 records),
8640 records per machine every day (432,000 records).
And all this data needs to be saved month to month which is about 259,200 records per machine or a nice beefy 12,960,000 records for all machines per month!!!
What I was therefore thinking was, to reduce this number by a third and have a field like:
1=###|2=###|3=####, GetDate()
Because GetDate would be the same for all 3 records anyway, and the 3 individual records could be entered into one field where I can Split() them at a later date to acquire historic data.
Rather than a:
SELECT * FROM HistoricData WHERE [Field2]=###
I could have:
SELECT * FROM HistoricData WHERE [NewField] LIKE '%2=###%'
Would saving the data my new proposed way have much of an impact on the Server or should we be looking at any other ways of saving this data?