|
|
#1 |
|
Участник
|
Оптимизация запросов к БД в коде
----------------
sukhanchik Обсуждение вынесено из ветки Нужен совет: Oracle или MS SQL ---------------- 5 лет назад я говорил, что "таких нет", кто будет выбирать в пользу MS SQL. Теперь я изменил свое мнение. Работаю на базе данных MS SQL с 9 млн. проводок и 448 тыс. накладных. Никаких блокировок и тормозов нет. Все летает. Размер базы 150 ГБ. Не парюсь со всякими хинтами типа forceplaceholders и forcenestedloops. Везде использую exist join - очень удобно. Чтобы база работала быстро, надо: 1) Большое количество памяти на сервере, чтобы информацию о блокировках записей SQL-сервер целиком помещал в памяти. Тогда не будет возникать страничных и табличных блокировок. 2) периодически перестраивать индексы и обновлять статистику запросов 3) программисту всегда проверять, есть ли индекс по полям, которые перечислены в выражении отбора "where". достаточно иметь индекс по первому полю, идущему в выражении отбора "where" 3)в выражении отбора "where" сначала перечислять более уникальные поля, а потом менее уникальные - например надо писать "where inventTrans.TransRefId == 'journalId' && inventTrans.TransType == InventTransType.InventTransfer". А так писать нельзя: "where inventTrans.TransType == InventTransType.InventTransfer && inventTrans.TransRefId == 'journalId' ". Последний раз редактировалось sukhanchik; 17.03.2010 в 16:59. |
|
|
|
| За это сообщение автора поблагодарили: hated8 (1). | |
| Теги |
| index hint, sql server, оптимизация |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Параметры запросов БД | 3 | |||
| Владельцы таблиц в БД аксапты | 11 | |||
| Оптимизация запросов | 6 | |||
| Оптимизация запросов | 3 | |||
| Просмотр SQL запросов к БД с помощью файла Log | 3 | |||
|