Переключение на Главную Страницу Страницы: 1 ... 6 7 [8]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Выборка остатков прямым запросом (число прочтений - 30527 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #105 - 24. Сентября 2010 :: 11:23
Печать  
про group by тоже околонаучное объяснение :
итератор то быть должен для group by и он должен что либо обработать ему какая разница сколько строк обрабатывать
одну или тысячу.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #106 - 24. Сентября 2010 :: 11:25
Печать  
Это обсуждение 3-го вопроса, как следует из цитат. Но согласия там нет - просто утверждение, основанное на планах выполнения, показанных профайлером.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #107 - 24. Сентября 2010 :: 11:30
Печать  
leshik писал(а) 24. Сентября 2010 :: 11:22:
Эко зацепили высокие материи...
я правда так и не понял - по опыту тестов Параметризованный запрос медленнее обыкновенного?

с точки зрения клиента ( конкретно работающей сессии)
под нагрузкой все работает одинаково и определяется доступностью ресурсов sql сервера.
если копать глубже то надо смотреть на сервере
по всем этим случаям  количество логических READ WRITE
и по ним уже выбирать ( ну все это без учета тонких материй ) победителя дающего наименьшую нагрузку на sql server.

ну а о тонких(тончайших) материях 1с++ по крайней мере выигрывает у стандартной 1с что делает более правильный тип char(9) а не varchar(9), а также если сообщество согласится со мной то в виртуальных функциях можно доработать 1с++ и не делать в некоторых случаях лишний group by

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #108 - 24. Сентября 2010 :: 11:32
Печать  
Z1 писал(а) 24. Сентября 2010 :: 11:23:
про group by тоже околонаучное объяснение :
итератор то быть должен для group by и он должен что либо обработать ему какая разница сколько строк обрабатывать
одну или тысячу.

О. А можно про "околонаучное" поподробнее, в свете #98?

На самом деле, совершенно не важно, что и как делают штатные методы. Благодаря 1С++ результат всегда может быть получен оптимальным способом. К примеру, впервые на работу бух. подсистемы через профайлер я посмотрел из любопытства уже после выхода AccountsRecordset.  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #109 - 24. Сентября 2010 :: 11:43
Печать  
berezdetsky писал(а) 24. Сентября 2010 :: 11:32:
Z1 писал(а) 24. Сентября 2010 :: 11:23:
про group by тоже околонаучное объяснение :
итератор то быть должен для group by и он должен что либо обработать ему какая разница сколько строк обрабатывать
одну или тысячу.

О. А можно про "околонаучное" поподробнее, в свете #98?

На самом деле, совершенно не важно, что и как делают штатные методы. Благодаря 1С++ результат всегда может быть получен оптимальным способом. К примеру, впервые на работу бух. подсистемы через профайлер я посмотрел из любопытства уже после выхода AccountsRecordset.  Улыбка

научного объяснения нет
вроде попытался на это ответить в #99
Еще два Ненаучных аргумента текст запроса меньше чуть чуть
чуть быстрее его передадим
второе т.к. запрос меньше ( по количеству лексем ) то и его
синтаксический разбор будет быстрее ну и на эту дельту короче компиляция запроса.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #110 - 24. Сентября 2010 :: 11:57
Печать  
Кстати еще одно ненаучное обоснование пункта 1
Рассуждения абстрактные но имеют право на существование
оптимизатор запросов может неправильно выполнить
неявное преобразование типов и из-за этого вообще не попадем в индекс PERIOD.
Особенно возможность именно такой ситуации возрастает при работе
под sql2005, sql2008 потому что оптимизатор запросов работает в режиме эмуляции для совместимости с форматом базы 80.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #111 - 24. Сентября 2010 :: 15:08
Печать  
berezdetsky писал(а) 24. Сентября 2010 :: 10:20:
Z1 писал(а) 24. Сентября 2010 :: 10:11:
при этом левые пробелы обрежуться

Чёта ржу.  Смех

вспомнил пример трудных ошибок неявного  преобразования типов
char(9) varchar(9) правда к конкретному случаю это не относится но тем не менее (пример верен и для передаваемых параметров )

Код
Выбрать все
declare @v_ch varchar(9)
declare @ch char(9)
set @v_ch = '4567'
select '!!!' + @v_ch + '!!!'
set @ch = @v_ch
--  большой блок вычислений
set @v_ch = @ch
select '!!!' + @v_ch + '!!!'
 


значение @v_ch в начале
!!!4567!!!

значение @v_ch в конце
!!!4567     !!!

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #112 - 24. Сентября 2010 :: 17:49
Печать  
Результаты тестов.
База в монопольном режиме
перед каждой серией очищал кэш проц и буфер данных

Стандартный Сводный остаток Рег через одну точку
Сред = 6.0769  Серия 6.234   6.049   6.049   6.04   6.067   6.083   6.068   6.063   6.064   6.052  

Стандартный Сводный остаток
Сред = 6.0825  Серия 6.189   6.071   6.082   6.066   6.08   6.063   6.083   6.086   6.05   6.055  

Прямой запрос  + Параметр + ПостроитьПараметры
Сред = 5.0485  Серия 5.105   5.034   5.039   5.042   5.033   5.022   5.059   5.032   5.048   5.071  

Прямой запрос  + УстановитьТекстовыйПараметр
Сред = 5.1971  Серия 5.226   5.212   5.203   5.195   5.185   5.182   5.179   5.21   5.203   5.176  

Прямой запрос  + Параметр + ДобПараметр
Сред = 5.068  Серия 5.127   5.066   5.051   5.064   5.064   5.049   5.075   5.055   5.054   5.075  

Прямой запрос  + Вызов хранимой процедуры  test5
Сред = 5.103  Серия 5.15   5.1   5.085   5.1   5.1   5.084   5.129   5.087   5.088   5.107


Можно сделать чуть объективнее тест загнать ячейки в ТЗ и обращаться к базе только для вычисления СводногоОстатка.
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #113 - 27. Сентября 2010 :: 07:04
Печать  
Так что, с "построить параметры" чуть побыстрее выходит, чем с ручным добавлением параметра? Или каждый раз по разному получается?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #114 - 27. Сентября 2010 :: 07:45
Печать  
Neo писал(а) 27. Сентября 2010 :: 07:04:
Так что, с "построить параметры" чуть побыстрее выходит, чем с ручным добавлением параметра? Или каждый раз по разному получается?

так параметр и должен работать быстрее.
вопрос насколько быстрее зависит от множества факторов.
также если будет время то усовершенствую тест ( список
для сводного остатка  будет подготавливаться заранее  а в тестах будет только цикл по этому списку.)

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 
ОтправитьПечать