16.03.2010, 15:26 | #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 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|