Оптимизируйте правильные объединения - PullRequest
0 голосов
/ 10 сентября 2009

Следующий запрос работает как положено. Но я думаю, что здесь достаточно места для оптимизации. Любая помощь?

SELECT   a.cond_providentid,
      b.flag1
FROM     c_master a
WHERE    a.cond_status = 'OnService'
ORDER BY a.cond_providentid,
         a.rto_number; 

1 Ответ

2 голосов
/ 10 сентября 2009

Могу ли я предложить разместить запрос в левом соединении в представлении базы данных - таким образом код может быть намного чище и проще в обслуживании.

Кроме того, проверьте столбцы, которые вы чаще всего используете ... это может быть кандидатом для индексации, чтобы при выполнении запроса он работал быстрее.

Вы также можете проверить типы данных вашего столбца ... Я вижу, что у вас есть этот тип кода:

(CASE КОГДА b.tray_type НЕДЕЙСТВИТЕЛЕН ТОГДА 1 ELSE 0 КОНЕЦ) flag2

Если у вас есть возможность изменить дизайн ваших таблиц (например, bTray_Type на bit или использовать вычисляемый столбец для определения флага), он будет работать быстрее, поскольку вам не нужно использовать операторы Case для определения флага , Вы можете просто добавить его в качестве другого столбца для вашего запроса.

Надеюсь, это поможет! :)

Ann

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...