Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Разясните тупому ламеру, почему? (число прочтений - 4508 )
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Разясните тупому ламеру, почему?
29. Августа 2006 :: 10:23
Печать  
Есть запрос №1:
Код
Выбрать все
SELECT
(SELECT ДокОтН.IDDoc FROM dh8682 ДокОтН (nolock) WHERE ДокОтН.IDDoc = ЖурДок.IDDoc) AS [ТекДок]
FROM _1sjourn ЖурДок (nolock)
WHERE
(ЖурДок.DocNo LIKE 'ЗД-0000056%') AND (ЖурДок.IDDOCDEF = 8682) 


И запрос №2:
Код
Выбрать все
SELECT
ДокОтН.IDDoc AS [ТекДок]
FROM _1sjourn ЖурДок (nolock)
INNER JOIN dh8682 ДокОтН (nolock) ON ДокОтН.IDDoc = ЖурДок.IDDoc
WHERE
ЖурДок.DocNo LIKE 'ЗД-0000056%' 


Почему запрос №1 выполняется быстрее второго? Только без очень умных слов пжлста.
  

_log.JPG ( 34 KB | Загрузки )
_log.JPG
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #1 - 29. Августа 2006 :: 10:30
Печать  
Потому, что во втором запросе сканируется вся таблица, а в первом - только часть (отобранная по индексу DOCTYPE).


А вообще, в таких случаях бери результат отладки (рс.Отладка(1)) и смотри план выполнения в QA.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #2 - 29. Августа 2006 :: 10:46
Печать  
а если определишь в запросе _1sjourn.dnprefix, то будет тебе щастье
т.к. попадешь в индекс DOCNO и получишь минимальный Reads
  

1&&2&&3
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #3 - 29. Августа 2006 :: 11:00
Печать  
trad писал(а) 29. Августа 2006 :: 10:46:
а если определишь в запросе _1sjourn.dnprefix, то будет тебе щастье
т.к. попадешь в индекс DOCNO и получишь минимальный Reads


Можно подробнее, пожалуйста.
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #4 - 29. Августа 2006 :: 11:05
Печать  
условие по dnprefix добавь
  

1&&2&&3
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #5 - 29. Августа 2006 :: 11:06
Печать  
chicago писал(а) 29. Августа 2006 :: 11:00:
Можно подробнее, пожалуйста.

только нормально вопсприми, то что попытаюсь до тебя донести...
итак: ты бы хоть DDS удосужился открыть, про поисковик я ваще молчу, чтобы найти например это:
http://metaprog.co.ua/secrprog/opisanietabl.html#_1_2_4
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #6 - 29. Августа 2006 :: 11:07
Печать  
trad писал(а) 29. Августа 2006 :: 11:05:
условие по dnprefix добавь

даю рупь за 100, ща еще раз попросит подробностей, шо это такое...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #7 - 29. Августа 2006 :: 11:12
Печать  
Цитата:
chicago писал(а) 29. Августа 2006 :: 11:00:
Можно подробнее, пожалуйста.

только нормально вопсприми, то что попытаюсь до тебя донести...
итак: ты бы хоть DDS удосужился открыть, про поисковик я ваще молчу, чтобы найти например это:
http://metaprog.co.ua/secrprog/opisanietabl.html#_1_2_4


Вопрос ставился от имени ламеров, умных дятлов никто за язык не тянет.
  
Наверх
ICQ  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #8 - 29. Августа 2006 :: 11:15
Печать  
Вот такой запрос также будет работать как 1 с поста (0):
Код
Выбрать все
SELECT
	ДокОтН.IDDoc AS [ТекДок]
FROM dh8682 AS ДокОтН (nolock)
INNER JOIN _1sjourn ЖурДок (nolock) ON ДокОтН.IDDoc = ЖурДок.IDDoc
WHERE
	ЖурДок.IDDOCDEF = 8682
	AND ЖурДок.DocNo LIKE 'ЗД-0000056%'
 


И все дело как сказал (1) в поиске по индексу, если указать вроде как ненужное условие по IDDOCDEF, то оптимизатор SQL начинает использовать индекс DOCTYPE.

(3) Все верно говоришь, (спасибо 1С за составные индексы) но если нумерация не скозная а периодическая, то придется перечислять все периоды, или же ставить условие на LEFT(DNPREFIX,10) = пробелы+10ИДДока, что может не привести к ускорению работы.
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #9 - 29. Августа 2006 :: 11:19
Печать  
pvase писал(а) 29. Августа 2006 :: 11:15:
(3) Все верно говоришь, (спасибо 1С за составные индексы) но если нумерация не скозная а периодическая, то придется перечислять все периоды,

обязательно, правда если нужны документы с таким номером из всех периодов.
если только из текущего, то только один
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Разясните тупому ламеру, почему?
Ответ #10 - 29. Августа 2006 :: 11:21
Печать  
pvase писал(а) 29. Августа 2006 :: 11:15:
или же ставить условие на LEFT(DNPREFIX,10) = пробелы+10ИДДока, что может не привести к ускорению работы.

да, такая математика - не приемлима
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать