Индексация является здесь основным фактором, при правильном выполнении они могут довольно быстро ускорить операторы Select, но помните, что индекс будет тормозить вставку, а сервер обновляет не только данные, но и индексы. Хитрость здесь такова:
1) Определите запросы, которые действительно критичны по скорости, эти запросы должны иметь оптимальные индексы для них.
2) Здесь также важен коэффициент заполнения. Это обеспечивает пустое пространство для страницы индекса для заполнения позже. Когда страница индекса заполнена (вставлено достаточное количество строк), необходимо создать новую страницу, что займет еще больше времени. Однако пустые страницы занимают место на диске.
Мой трюк такой, для каждого приложения я устанавливаю приоритеты следующим образом:
1) Скорость чтения (SELECT, Some UPDATE, Some DELETE) - чем выше этот приоритет, тем больше индексов я создаю
2) Скорость записи (INSERT, Some Update, Some DELETE) - чем выше этот приоритет, тем меньше создаваемых мной индексов
3) Эффективность дискового пространства - чем выше этот приоритет, тем выше коэффициент заполнения
Обратите внимание, что эти знания обычно применяются к SQL Server, пробег может отличаться в зависимости от СУБД.
Здесь также может помочь оценка операторов SQL, но для этого нужен настоящий профессионал, тщательный анализ ГДЕ и СОЕДИНЕНИЕ может помочь определить узкие места и проблемы, с которыми сталкиваются ваши запросы. Включите SHOWPLAN и запросите планы, оцените то, что вы видите, и планируйте соответственно.
Также посмотрите на SQL Server 2008, индексированные объединения!