Skip to content

Ускорение функции бд 'getratesforgroupall'

Для ускорения работы getratesforgroupall предлагаю следующий вариант этой функции.

getratesforgroupall.sql

relevant_disciplines.sql

Тестирование проводилось для семестров с id < 7 и id >= 7. Для этого использовалась программа на Ruby. В файле script.sql находится функция, которую тестируем. Файлы old_group_sem.txt и new_group_sem.txt содержат пары группа семестр, где соответственно семестры с id < 7 и id >= 7.

script.sql

test.rb

main.rb

new_group_sem.txt

old_group_sem.txt

Результат для семестров с id < 7: 88,983 ​мс для предыдущей версии vs 21,05 мс для модифицированной
Результат для семестров с id >= 7: 3692,727​ ​мс для предыдущей версии vs 31,983​ мс для модифицированной

Для всех этих случаев количество строк (и сами строки) выдаваемых результатов старой функции и предложенной совпадает.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information