Привет!
Есть 2 запроса:
SELECT
qwe,
asd,
zxc
FROM
(
SELECT
qwe,
asd,
zxc
FROM
Table
WHERE
Table.qwe = qaz
) AS HZ
SELECT
qwe,
asd,
zxc
FROM
(
SELECT
qwe,
asd,
zxc
FROM
Table
) AS HZ
WHERE
HZ.qwe = qaz
Первый запрос быстрее.
Он сначала проводит вложенный SELECT, который усекает выборку для внешнего SELECT (стоящего первой строкой в запросе).
Во втором запросе внутренний вложенный SELECT не уменьшает выборку и поэтому внешний SELECT заново проходится по той же совокупности данных и выбирает строки соответствующие условию. Это двойная работа.
Я так понимаю, что сама выборка (ещё с наличием нужных индексов) будет занимать меньшую часть времени. Так? Затратная операция в данном случае будет фильтрация по условию. Так? Но и в первом и втором случае фильтрация будет осуществляться на одинаковом наборе данных. Т.е. реально почувтствуется ли прирост производительности?
1. Если сам запрос выполнять в СКЛ, то должно выполнять то что описал arkadij.
2. В теории первый должен быстрее работать, на практике же может произойти совсем наоборот (это я к привязке к стороннему ПО говорю)
Например, 1С транслирует запрос на СКЛ сервер так как она это видит, а не так как это хочется СКЛ-серверу. Часто эта трансляция правильная, но может возникнуть ситуация когда при выполнении запроса (1 вариант) СКЛ-сервер выберет не оптимальную схему, в результате чего получим значительное ухудшение производительности. http://pro1c.org.ua/index.php?showtopic=316
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua