Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 16:01 23.09.24 
Клубове/ Компютри и Интернет / Бази данни Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: индекси.....кога има и кога няма смисъл... [re: Topбaлaн]
Авторbaj L\bo (Нерегистриран) 
Публикувано12.03.03 16:45  



въпроса пада малко общ, но:

индекс в/у (piс_id, member_id) ще се ползва от заявки, които имат
WHERE pic_id=PID , но не и от заявки които имат WHERE member_id=MID. По принцип, ако в WHERE клаузата не фигурира водещата колона на индекса, той няма да се използва. Причината е че листата на индекса са сортирани по ключа (напр. piс_id, member_id) и ако записите дето имат определена стойност за втората (третата..) колона не са събрани на едно място в индекса.

Така че ако очакваш много заявки по втората колона, хубаво е да направиш отделен индекс само по нея или дори по двете колони в обратен ред.

Индексите разбира се забавят инсертите, което при много активни таблици се вижда с просто око (не вярвам твоя случай да е такъв).

Когато създаваш нов индекс, хубаво е да се увериш че той се ползва (експлайн). Щото оптимизатора има хиляда причини да не ползва индекса.

За хиляда записа може да се окаже че табле скан е по-бързо: например ако да речем хиляда записа се събират на три страници и да речем записите които търсиш са на две от тях с индекс трябва да се прочете индексната страница + две стр. с данни -- пак три. Оптимизаторите осъзнават такива ситуации и праскат направо табле скан.

Друга често срещана грешка е водещата колона да е аргумент на функция -- индекса няма да се използва. Например тука някакъв гявол е кодирал в хиляди процедури нещо от типа на
WHERE pic_id=isnull(PID, pic_id)

демек, ако параметъра ПИД е зададен, избирай по него, ако не -- здраве. Това опростява кода, обаче обезсмисля индекса в/у пис-ид.

За да анализирам как се използват индексите, вземам логовете от да речем една седмица, извличам заявките от тях и ги изпълнявам на друг сървер така че да ми се генерира планът за изпълнение на куерито. Плановете ги парсвам и за всяка таблица на всяка заявка си запомням таблицата, индекса който се е ползвал (или табле скан) и какви буфери са се използвали. Това си го зареждам в една таблица и мога да я питам аджеба покажи ми случате на табле скан или покажи ми индексите дето не са се използвали никога -- може би трябва да ги махна.



Цялата тема
ТемаАвторПубликувано
* индекси.....кога има и кога няма смисъл... Topбaлaн   12.03.03 10:09
. * Re: EXPLAIN ще ти каже. salle   12.03.03 10:24
. * Re: EXPLAIN ще ти каже. Topбaлaн   12.03.03 10:30
. * Re: Обективите - кога имат и кога нямат смисъл? salle   12.03.03 11:31
. * Re: Обективите - кога имат и кога нямат смисъл? Topбaлaн   12.03.03 13:02
. * Re: Там е работата я salle   12.03.03 16:25
. * Re: Там е работата я Topбaлaн   12.03.03 22:33
. * Re: индекси.....кога има и кога няма смисъл... baj L\bo   12.03.03 16:45
. * Re: индекси.....кога има и кога няма смисъл... Topбaлaн   12.03.03 22:27
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.