С начала попробуйте загрузить несколько табличек без объединения, если загрузятся быстро то это значит что источник отдаёт хорошо, и канал связи Вас тоже не подводит! :)
После попробуйте поиграйтья с функцией table.buffer.
Попробую описать логику работы:
есть запрос А и на его основании сделан запрос B, так вот когда идёт обновление всех запросов сначала обновляется запрос А, после начинает обновляться запрос B и на этом этапе он автоматически заставляет повторно обновится запросу А, то есть запрос А обновляется два раза.
table.buffer - запрещает повторно обновляться запросу А и выгружает все данные во временный буфер который находится в оперативной памяти, естественно если у Вас мало будет оперативной памяти - то это будет затормаживать, если много то проблемы не будет.
В общем логику и вектор движения рассказал, я бы двигался в эту сторону!:)
Может быть где-то не точности, но тогда меня поправят участники группы.
насколько помню, там не совсем так все работает. Точнее, почти так, но есть нюансы вроде бы) Например. если у нас цепочка более чем из двух кверь вида квери3 ссылается на квери2. которая ссылается на квери1, даже если мы буфернем квери1, она все равно при обновлении квери 3 дважды вызовет квери1 и еще и дважды ее буферизует, потому что буфер хранится не в кэше, а именно в памяти. И вот эта история с двойной буферизацией как раз и подводит к второй неточности - перформанс буфера зависит не от величины оперативки как таковой, а от величины мэшап-контейнера, который в десктопе 256мб. Насколько я помню, единственное место, где его вообще можно увеличить - это premium capacity. Соответственно, если данных в квери1 много, то мы можем буфером наоборот ухудшить производительность наших кверь) Как уже говорил, не уверен на 100% во всем, что я тут понаписал, но именно такая картина у меня сложилась после чтения постов мэтров на текнете, надеюсь, если я не прав, то меня поправят и вырвут из пучины заблуждений)