Why historical data storage matters in SCADA systems - Performance Analysis
When storing historical data in SCADA systems, it is important to understand how the time to save and retrieve data changes as the amount of data grows.
We want to know how the system handles more and more data over time.
Analyze the time complexity of the following code snippet.
// Store sensor readings in historical database
function storeHistoricalData(sensorDataList) {
for (let i = 0; i < sensorDataList.length; i++) {
database.insert(sensorDataList[i]);
}
}
// Retrieve all historical data
function retrieveHistoricalData() {
return database.queryAll();
}
This code saves a list of sensor readings one by one and retrieves all stored data when needed.
- Primary operation: Looping through each sensor reading to insert into the database.
- How many times: Once for each item in the sensorDataList.
As the number of sensor readings increases, the time to store them grows proportionally.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 insert operations |
| 100 | 100 insert operations |
| 1000 | 1000 insert operations |
Pattern observation: The time grows directly with the number of readings; doubling the data doubles the work.
Time Complexity: O(n)
This means the time to store historical data grows in a straight line with the amount of data.
[X] Wrong: "Storing more data will take the same time no matter how much data there is."
[OK] Correct: Each new piece of data needs its own insert operation, so more data means more time.
Understanding how data storage time grows helps you explain system behavior clearly and shows you can think about scaling in real projects.
"What if the database supported batch inserts instead of one-by-one? How would the time complexity change?"