Здравствуйте.
Все пользовательские SQL-запросы, вызванные через RunSQL (или Table.RunSQL) ставятся в очередь и скада создаёт один отдельный поток для обработки очереди. Этот поток последовательно берёт запросы из очереди и выполняет их (не чаще чем каждые 50 мс, если это возможно). На скорость выполнения запросов влияют следующие факторы:
- скорость жесткого диска;
- производительность ПК;
- загруженность СУБД в момент выполнения запроса;
- сам запрос и то, насколько он "тяжелый";
Остальные факторы связаны со скадой и запросами. Например, если объединять множество "INSERT" запросов в один большой "INSERT INTO VALUES", то можно существенно увеличить производительность запросов и скорость их выполнения, и уменьшить величину очереди. Также можем добавить опцию, которая позволит задать количество потоков, которые скада создаёт для выполнения пользовательских запросов, это тоже может сильно ускорить массовые запросы.