|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Tolik Tentser 2:5020/400 07 Oct 2001 08:16:37 To : Victor Metelitsa Subject : Re: ms sql server vs. ibm db2 -------------------------------------------------------------------------------- ax.com> <9pfi9s$gb7$1@gavrilo.mtu.ru> <9phds3$ccf$1@host.talk.ru> ax.com> <9pi7d7$2f6$1@gavrilo.mtu.ru> <9pj6r0$glv$1@news.nsk.su> ax.com> <9pjug3$1j1n$1@gavrilo.mtu.ru> <9pk1e6$mhc$1@news.nsk.su> ax.com> <3BBDB813.2030606@cssc.tat.ru> From: Tolik Tentser <tolik@katren.ru> Hi, Victor Metelitsa! В чреве акулы, пойманной Fri, 5 Oct 2001 13:38:23 +0000 (UTC), дети капитана Гранта нашли письмо на тему 'Re: ms sql server vs. ibm db2': >> Что значит "переписывает логику" ? > >Очевидно, речь идет о переписывании запросов (статья "Rewrite Query by >the SQL Compiler" и т.п. в главе "Chapter 25. Understanding the SQL >Compiler", "Administration Guide". Она слишком большая, чтобы ее >приводить здесь). Запрос может быть переделан до неузнаваемости. Запрос >с WITH, который зачастую эквивалентен нескольким "обычным" SELECT'ам или >одной хранимой, оптимизируется целиком, и понятно, что у оптимизатора >здесь больше возможностей. Hасколько мне удалось понять - DB2-шный оптимизатор тут действительно лидер, но он не является уникальным. Тот же MSSQL запросто превращает EXISTS в JOIN и т.п. при построении плана >С другой стороны, в свое время я убедился на твоих примерах, что перед >некоторыми (даже простыми) запросами, в отсутствие хинтов, DB2-шный оптимизатор >пасует, и требуется принимать специальные меры (разбивать таблицы, добавлять >дополнительные условия и т.п.). А это то, что я говорил про семантику данных. Иногда её знание позволяет оптимизировать запрос на качественно ином уровне. >> MSSQL 6.X делал то же самое буквально для sp, а в семерке от этого >> отказались и план строится при первом исполнении запроса (или процедуры), а >> потом - используется повторно, так что ничего нового опять. >Hо для "обычных" приложений с "обычными" SELECT, INSERT etc MSSQL этого >не делал? 6.X - не делал вообще 7+ - делает всегда, только статически планы не хранит >Хотя, конечно, все равно не такая уж важная фича. Я static SQL-ом >никогда и не пользуюсь, это для всяких фанов (вроде разгонщиков >процессоров, которые готовы рискнуть свой пентиумом ради дополнительных >5% производительности). Где-то так и есть. Хотя, иногда, в особо специфических ситуациях - хотелось бы хранения планов, но ситуации настолько специфичны, что их обычно даже их обнаружение весьма нетривиально и требует куда как больше квалификации, чем написание хинтов. Типа очень редко исполняемого запроса, который тем не менее должен отработать очень быстро, а сам по себе - довольно сложен и план строится долго. Bye ... Тенцер А.Л. tolik@katren.nsk.ru ICQ 15925834 --- ifmail v.2.15dev5 * Origin: AO Katren (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/2080d1c7a67a.html, оценка из 5, голосов 10
|