Прочитал на каком-то сайте пару интересных мыслей об оптимизации sql-запросов под MSSQL. Смысл ниже:
Прежде чем оптимизировать SQL запросы, следует, как минимум, разобраться в каком порядке происходит обработка этого самого запроса. Ведь очень часто эта обработка отличается от того, как именно (в каком порядке) он был записан.
По стандартам ANSI запрос должен быть записан и выполнен в следующей форме:
SELECT [...]
FROM [table1]
JOIN [table2]
ON [condition]
WHERE [...]
GROUP BY [...]
HAVING [...]
ORDER BY [...]
В MSSQL запрос будет выполнен в немного по-другому. А именно:
FROM [table1]
ON [condition]
JOIN [table2]
WHERE [...]
GROUP BY [...]
HAVING [...]
SELECT [...]
ORDER BY [...]
Причем DISTINCT будет обработан после SELECT, но перед ORDER BY. Вот так.
Нужно будет глянуть при удобном случае как MySQL обрабатывает данный запрос. Для пользы дела. Пригодится при оптимизации sql-запросов в любом случае.
07.07.2007. 00:03
Александр on 01.08.2007. 18:42
Как глянешь, напиши об этом обязательно... Будет весьма полезно всем. Респект.
Написать комментарий
* = необходимые поля