Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) статья Ускоряем регисты v77 для базы MS SQL (число прочтений - 15210 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
статья Ускоряем регисты v77 для базы MS SQL
08. Декабря 2010 :: 06:16
Печать  
статья Ускоряем регисты v77 для базы MS SQL
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #1 - 08. Декабря 2010 :: 06:16
Печать  
Пролог
Читая о новых возможностях sql2008 по сжатию данных пришла мысль, а не сделать нечто
похожее на  это (  в базе sql2000 v77 )  руками.
Мотивы все те же. Заставляем sql server обрабатывать меньшее количество страниц для получения
точно такого же результата.

То что описано далее реально работает на высоконагруженной 1с77 ms sql базе
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #2 - 08. Декабря 2010 :: 06:17
Печать  
Основная мысль
Таблицы rg.. самые изменяемые таблицы 1с базы и любое улучшение работы с этими таблицами
обязательно улучшает общую производительность sql базы.
Для всех таблиц  rg...  меняем для поля PERIOD тип с datetime на тип smalldatetime.
Вообщем то это главная идея этой статьи.
Далее описывается как это сделать и что из этого получилось
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #3 - 08. Декабря 2010 :: 06:17
Печать  
Как сделать
Расписывается для конфигурации Торговля и Склад версия 9.2
В этой конфигурации есть регистр ОстаткиТМЦ
  

_______________001.JPG ( 10 KB | Загрузки )
_______________001.JPG
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #4 - 08. Декабря 2010 :: 06:18
Печать  
Описание из dds
#==TABLE no 160    : Регистр ОстаткиТМЦ
# Name    |Descr                         |SQLTableNam|RecordLock
T=RG405   |Регистр ОстаткиТМЦ            |RG405      |         
#-----Fields-------
# Name                  |Descr               |Type|Length|Precision
F=PERIOD                |Period Registr      |D   |0     |0       
F=SP4062                |(P)Фирма            |C   |9     |0       
F=SP408                 |(P)Номенклатура     |C   |9     |0       
F=SP418                 |(P)Склад            |C   |9     |0       
F=SP3117                |(P)ЦенаПрод         |N   |14    |2       
F=SP411                 |(P)Количество       |N   |14    |5       
#----Indexes------
# Name                           |Descr         |Unique|Indexed fields                                              |Type      
I=PK_RG405                       |PERIOD+PROP   |1     |PERIOD,SP4062,SP408,SP418,SP3117                            |1         
I=VIA408                         |VIA408        |0     |PERIOD,SP408                                                |0         
#

Т.е. в таблице  RG405 есть Кластерный индекс PK_RG405
и индекс VIA408 ( Ускоряет отбор итогов по номенклатуре )
В терминах sql RG405 это
Код
Выбрать все
CREATE TABLE [RG405] (
	[PERIOD] [datetime] NOT NULL ,
	[SP4062] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[SP408] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[SP418] [char] (9) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[SP3117] [numeric](14, 2) NOT NULL ,
	[SP411] [numeric](14, 5) NOT NULL ,
	CONSTRAINT [PK_RG405] PRIMARY KEY  CLUSTERED
	(
		[PERIOD],
		[SP4062],
		[SP408],
		[SP418],
		[SP3117]
	)  ON [PRIMARY]
) ON [PRIMARY]
 



Повторюсь еще раз наша цель заменить
     [PERIOD] [datetime] NOT NULL ,
на
     [PERIOD] [smalldatetime] NOT NULL ,
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #5 - 08. Декабря 2010 :: 06:19
Печать  
Что делаем
1. Создаем копию таблицы RG405 в Х_RG405
2. Копируем данные из  RG405 в  Х_RG405
3. Удаляем таблицу RG405
4.Создаем RG405 с полем PERIOD имеет тип   smalldatetime
5. Копируем данные из  Х_RG405 в  Х_RG405
6. Создаем индекс VIA408 в таблице RG405
7. Удаляем таблицу Х_RG405
8.Цель достигрнута.  Работаем в обновленной 1с

Возможны варианты например можно удалить таблицу, создать измененную таблицу,создать индексы
пересчитать итоги. Можно также перед началом манипуляций удалить все доп индексы из конфигуратора,
после их заново создать.

В приложении расписываются подробно шаги с 1-7. Аналогичные действия надо выполнить для всех
регистров Вашей базы .Неважно регистр остатков или оборотов.
также не важна дискретность итогов (месяц декада неделя пять дней)  я считаю что всегда должен быть месяц
  

__________.txt ( 1 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #6 - 08. Декабря 2010 :: 06:20
Печать  
После  имеем
Таблицы rg занимает меньше памяти а значит все операции (insert update delete ) выполняются быстрее и
при этом меньше расходуется буферный пул.
Т.к поле PERIOD входит в кластерный индекс то операции с индексами(со всеми индексами по rg),
то  операции над индексами ( scan table, scan index, seek index) выполняются быстрее
Также т.к длина одной записи rg стала меньше , то информация об rg ,
которая пишется в журнал транзакций, стала короче, поэтому запись в журнал транзакций об rg пишется быстрее.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #7 - 08. Декабря 2010 :: 06:20
Печать  
Еще наблюдение при работе с этими обновленными таблицами изменились блокировки по таблицам rg
раньше было
id        table        type         mode      Status           Resource
278     RG4380    Tab          S           GRANT

Стало
id        table        type         mode      Status           Resource
278     RG4380    Tab          IS           GRANT
278     RG4380    Pag          S           GRANT         1:2347280
278     RG4380    Pag          S           GRANT         1:2347281
278     RG4380    Pag          S           GRANT         1:2347094
........................................
278     RG4380    Pag          S           GRANT         1:2347221
  

__________PAG.JPG ( 84 KB | Загрузки )
__________PAG.JPG
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #8 - 08. Декабря 2010 :: 06:21
Печать  
Аналогично можно написать и для итогов. таблиц по бухгалтерии.

Если Вы применили все что написано выше и эфект 0 то скорее всего у Вас проблемы с дисковой системой
sql сервера. Скорее всего файлы данных и журнала транзакций расположенны на медленных дисковых массивах
и/или эти файлы сильно повержены внешней  физической фрагментации ( файловая фрагментация)
и/или внутренней (логической) фрагментации данных.


Пожелания комментарии замечания критика предложения приветствуются.

Эпилог
Надеюсь ,вышеизложенное, улучшит  работу Ваших пользователей с программой 1с77 для базы ms sql

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #9 - 08. Декабря 2010 :: 07:22
Печать  
Z1 писал(а) 08. Декабря 2010 :: 06:17:
обязательно улучшает общую производительность sql базы.


Z1 писал(а) 08. Декабря 2010 :: 06:19:
8.Цель достигрнута.



А сколько это "в попугаях"? Какие показатели и на сколько процентов были улучшены?
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #10 - 08. Декабря 2010 :: 07:38
Печать  
berezdetsky писал(а) 08. Декабря 2010 :: 07:22:
Z1 писал(а) 08. Декабря 2010 :: 06:17:
обязательно улучшает общую производительность sql базы.


Z1 писал(а) 08. Декабря 2010 :: 06:19:
8.Цель достигрнута.



А сколько это "в попугаях"? Какие показатели и на сколько процентов были улучшены?

Я не знаю как это измерить.
(единственно что можно сделать на тестовой ТС9 посмотреть сколько было и сколько стало чтений страниц )
по субъективным ощущениям  5%-10% при проведении.

Как это сказалось при рассчетах вне проведения не знаю.
но не зря же ms sql понизил экскалацию блокировок.
получается при тех же ресурсах(железо тоже) и при той же внешней нагрузке ms sql обрабатывает больше данных (rg) за то же самое время.
  
Наверх
 
IP записан
 
zaki
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #11 - 03. Января 2011 :: 07:59
Печать  
Я протестировал, на обновлениях записей таблиц RG дает 10-15% прирост скорости, осталось автоматизировать  замену datetime на smalldatetime
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #12 - 03. Января 2011 :: 18:22
Печать  
можно еще одно заклинание применить: заменить у всех ссылочных полей кодировку (collate) например на Cyrillic_General_BIN (ну или Latin1_General_BIN) - теоретически сравнение символьных полей с такой кодировкой должно ускориться.
  

1&&2&&3
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #13 - 10. Января 2011 :: 17:56
Печать  
trad писал(а) 03. Января 2011 :: 18:22:
заменить у всех ссылочных полей кодировку (collate) например на Cyrillic_General_BIN (ну или Latin1_General_BIN)

Интересно было бы посмотреть на результаты сравнения.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #14 - 10. Января 2011 :: 17:59
Печать  
Z1 писал(а) 08. Декабря 2010 :: 06:16:
статья Ускоряем регисты v77 для базы MS SQL

А ты это у себя внедрил? Или это пока из разряда экспериментального исследования?

ps: статья-то где, что-то ссылки не вижу?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #15 - 11. Января 2011 :: 05:48
Печать  
spock писал(а) 10. Января 2011 :: 17:56:
trad писал(а) 03. Января 2011 :: 18:22:
заменить у всех ссылочных полей кодировку (collate) например на Cyrillic_General_BIN (ну или Latin1_General_BIN)

Интересно было бы посмотреть на результаты сравнения.

нет, магия меня не интересует Смех
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #16 - 11. Января 2011 :: 08:12
Печать  
spock писал(а) 10. Января 2011 :: 17:59:
Z1 писал(а) 08. Декабря 2010 :: 06:16:
статья Ускоряем регисты v77 для базы MS SQL

А ты это у себя внедрил? Или это пока из разряда экспериментального исследования?

ps: статья-то где, что-то ссылки не вижу?

Смотри пост 1
То что описано далее реально работает на высоконагруженной 1с77 ms sql базе
Работает ( с сентября 2010 ) и обратно переходить не собираюсь.
Статья ( она короткая ) в самих постах с 1 по 8

  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #17 - 11. Января 2011 :: 16:03
Печать  
Z1 писал(а) 11. Января 2011 :: 08:12:
Работает ( с сентября 2010 ) и обратно переходить не собираюсь.

А как у тебя автоматизирована смена схемы?
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #18 - 11. Января 2011 :: 16:08
Печать  
Я может предложу банальность, но ты не пробовал измерение Номенклатура двинуть на первое место?

Я вот тоже задавался проблемой, как бы ускорить 1с-sql: http://infostart.ru/public/74613/
Но так, чтобы не патчить родные dll'ки и реструктуризация не страдала. Смысл сего, показывать 1с-ине, что родные таблицы не изменены, но на самом деле обращаться к своим таблицам/представлениям.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #19 - 11. Января 2011 :: 16:23
Печать  
spock писал(а) 11. Января 2011 :: 16:03:
Z1 писал(а) 11. Января 2011 :: 08:12:
Работает ( с сентября 2010 ) и обратно переходить не собираюсь.

А как у тебя автоматизирована смена схемы?

При смене конфигурации ничего не надо менять.
Один раз сделал и все(ничего не надо менять если не меняются сами регистры). поэтому никакой автоматизации не нужно.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #20 - 11. Января 2011 :: 16:27
Печать  
spock писал(а) 11. Января 2011 :: 16:08:
Я может предложу банальность, но ты не пробовал измерение Номенклатура двинуть на первое место?

Я вот тоже задавался проблемой, как бы ускорить 1с-sql: http://infostart.ru/public/74613/
Но так, чтобы не патчить родные dll'ки и реструктуризация не страдала. Смысл сего, показывать 1с-ине, что родные таблицы не изменены, но на самом деле обращаться к своим таблицам/представлениям.

у меня так и сделано. В моей конфигурации на первом месте товар
(селективность выше)

В статье описываются не мои регистры
а регистр  для конфигурации Торговля и Склад версия 9.2 (см пост 3)
чтобы легче было читать понять и сопоставить.

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


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #21 - 12. Января 2011 :: 04:11
Печать  
А если нам необходимо изменить регистр?
Что-то мне сдается, 1Ска при сохранении конфы увидит несоответствие таблицы и грохнет ее без разговоров.

Т.е. перед изменением регистра нам или проделывать обратную операцию, или (что все-таки заметно проще) - пересчитывать итоги регистра.
Не исключено, что 1Ска сама начнет пересчитывать итоги регистра... и помнится мне, что это она делает очень дебильно и очень долго.

Хотя идея интересная...
  
Наверх
 
IP записан
 
zaki
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #22 - 12. Января 2011 :: 05:07
Печать  
Satans Claws писал(а) 12. Января 2011 :: 04:11:
А если нам необходимо изменить регистр?
Что-то мне сдается, 1Ска при сохранении конфы увидит несоответствие таблицы и грохнет ее без разговоров.


Она не грогает ее а просто создает новую таблицу и из старой перекачивает данные и после удаляет старую
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #23 - 12. Января 2011 :: 05:49
Печать  
Satans Claws писал(а) 12. Января 2011 :: 04:11:
А если нам необходимо изменить регистр?
Что-то мне сдается, 1Ска при сохранении конфы увидит несоответствие таблицы и грохнет ее без разговоров.

1с вроде никогда таблиц не удаляет
если находит несоответсвие просто останавливается
проверить легко. Удалите какой либо индекс в справочнике.

Цитата:
Если надо изменить регистр ...

Как часто Вы меняете регистр ? При этом будут проблемы и посущественее например его  заполнение и.т.д.
Вполне можно сделать и обратную операцию ( для надежности)
а можно и не делать ведь все равно перед существенным измененнием  делаается резервная копия.

Цитата:
Не исключено, что 1Ска сама начнет пересчитывать итоги регистра... и помнится мне, что это она делает очень дебильно и очень долго.

не знаю что надо сделать чтобы 1с сама начала пересчитывать итоги. Даже если Вы удалите все строки из таблицы rg ( без subj ветки ) 1с ничего пересчитывть не будет.
Стандартный пересчет идет медленно потому-что выполняется построчно. Если переписать на sql пересчет итогов делается очень быстро.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #24 - 12. Января 2011 :: 06:05
Печать  
zaki писал(а) 12. Января 2011 :: 05:07:
Satans Claws писал(а) 12. Января 2011 :: 04:11:
А если нам необходимо изменить регистр?
Что-то мне сдается, 1Ска при сохранении конфы увидит несоответствие таблицы и грохнет ее без разговоров.


Она не грогает ее а просто создает новую таблицу и из старой перекачивает данные и после удаляет старую

Когда писал статью придумал и другие способы как все можно  добиться subj и по другому

способ а
1.удалить все индексы 2 изменить тип столбца PERIOD 3 восстановить индексы.
способ б  
1.Удалить  (drop table rg) таблицу rg 2.Создать таблицу rg с нужным типом PERIOD и со всеми индексами 3.Пересчитать итоги по rg

Каким из способов делать не очень принципиально.  В итоге каким способом не делать результат будет одинаковым.



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


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #25 - 12. Января 2011 :: 08:46
Печать  
Z1 писал(а) 12. Января 2011 :: 05:49:
1с вроде никогда таблиц не удаляет
если находит несоответсвие просто останавливается
проверить легко. Удалите какой либо индекс в справочнике.

Добавьте свою колонку в любую таблицу (например _1SJourn), заставьте 1Ску обратить на нее внимание (например, добавив регистр или изменить отбор по общему реквизиту) и удивитесь Подмигивание


Цитата:
не знаю что надо сделать чтобы 1с сама начала пересчитывать итоги. Даже если Вы удалите все строки из таблицы rg ( без subj ветки ) 1с ничего пересчитывть не будет.
Стандартный пересчет идет медленно потому-что выполняется построчно. Если переписать на sql пересчет итогов делается очень быстро.

Ровно то же самое - заставить обратить на нее внимание с точки зрения метаданных.
Удаление строк таблицы никак не влияет на метаданные. 1Ска даже не догадывается, что с таблицей что-то произошло (да, в общем-то, единственный способ догадаться - это пересчитать и сравнить с тем, что есть сейчас).

Для пересчета регистров есть замечательная отбработка от Дмитро.
Но если 1Ске такое изменение метаданных подвернет голову на предмет пересчета итогов - толку от нее будет...
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #26 - 12. Января 2011 :: 09:51
Печать  
Satans Claws писал(а) 12. Января 2011 :: 08:46:
Z1 писал(а) 12. Января 2011 :: 05:49:
1с вроде никогда таблиц не удаляет
если находит несоответсвие просто останавливается
проверить легко. Удалите какой либо индекс в справочнике.

Добавьте свою колонку в любую таблицу (например _1SJourn), заставьте 1Ску обратить на нее внимание (например, добавив регистр или изменить отбор по общему реквизиту) и удивитесь Подмигивание



Создал новый справочник Тест ( длина кода 5 длина наименования 25 колво уровней 1)  добавил реквизит ЗНач1 строка длина 10.
Зашел в 1с завел несколько элементов. Все работает
В sql  этому справочнику соответсвует таблица sc7911

добавил колонку  в sql таблицу sc7911

alter table sc7911
add  x1 char(10)

Захожу 1с первый раз. При верификации данных обнаружено несоответсвие. 1с останавливается.

удаляю колонку x1 из таблицы  sc7911
alter table sc7911
drop column  x1


Захожу 1с первый раз. Верификация успешно проходит.
Все данные в справочнике есть ( ни одна строка не удалена)

команда sql
select * from sc7911
возвращает также все строки таблицы.

Если хотите это обсудить то лучше наверное завести новую тему.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #27 - 12. Января 2011 :: 10:01
Печать  
Satans Claws писал(а) 12. Января 2011 :: 08:46:
Удаление строк таблицы никак не влияет на метаданные. 1Ска даже не догадывается, что с таблицей что-то произошло (да, в общем-то, единственный способ догадаться - это пересчитать и сравнить с тем, что есть сейчас).


Не единственный.
Моя обработка ПоискОшибок_в_регистрах(есть также и на этом сайте и на  инфостарт) найдет и покажет все
расхождения между таблицами ra и rg

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


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #28 - 14. Января 2011 :: 06:45
Печать  
Z1 писал(а) 12. Января 2011 :: 10:01:
Satans Claws писал(а) 12. Января 2011 :: 08:46:
Удаление строк таблицы никак не влияет на метаданные. 1Ска даже не догадывается, что с таблицей что-то произошло (да, в общем-то, единственный способ догадаться - это пересчитать и сравнить с тем, что есть сейчас).


Не единственный.
Моя обработка ПоискОшибок_в_регистрах(есть также и на этом сайте и на  инфостарт) найдет и покажет все
расхождения между таблицами ra и rg



А каким методом делаешь ты?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #29 - 15. Января 2011 :: 17:48
Печать  
Satans Claws писал(а) 14. Января 2011 :: 06:45:
Z1 писал(а) 12. Января 2011 :: 10:01:
Satans Claws писал(а) 12. Января 2011 :: 08:46:
Удаление строк таблицы никак не влияет на метаданные. 1Ска даже не догадывается, что с таблицей что-то произошло (да, в общем-то, единственный способ догадаться - это пересчитать и сравнить с тем, что есть сейчас).


Не единственный.
Моя обработка ПоискОшибок_в_регистрах(есть также и на этом сайте и на  инфостарт) найдет и покажет все
расхождения между таблицами ra и rg



А каким методом делаешь ты?

я делал как описывал с 1 по 8

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


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #30 - 19. Января 2011 :: 03:22
Печать  
Z1 писал(а) 15. Января 2011 :: 17:48:
Satans Claws писал(а) 14. Января 2011 :: 06:45:
Z1 писал(а) 12. Января 2011 :: 10:01:
Satans Claws писал(а) 12. Января 2011 :: 08:46:
Удаление строк таблицы никак не влияет на метаданные. 1Ска даже не догадывается, что с таблицей что-то произошло (да, в общем-то, единственный способ догадаться - это пересчитать и сравнить с тем, что есть сейчас).

Не единственный.
Моя обработка ПоискОшибок_в_регистрах(есть также и на этом сайте и на  инфостарт) найдет и покажет все
расхождения между таблицами ra и rg

А каким методом делаешь ты?

я делал как описывал с 1 по 8


То ли лыжи не едут...

Я спрашивал, что если метод проверки корректности данных в таблицах RG "пересчитать по RA, что должно быть, и сравнить с тем, что есть в RG" - не единственный, то какой еще существует?

И в "с 1 по 8" я не вижу ничего, касающегося проверки корректности данных...
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #31 - 21. Февраля 2011 :: 20:18
Печать  
Z1 писал(а) 08. Декабря 2010 :: 06:17:
Основная мысль
Таблицы rg.. самые изменяемые таблицы 1с базы и любое улучшение работы с этими таблицами
обязательно улучшает общую производительность sql базы.
Для всех таблиц  rg...  меняем для поля PERIOD тип с datetime на тип smalldatetime.
Вообщем то это главная идея этой статьи.
Далее описывается как это сделать и что из этого получилось


друзья, в свете данной статьи у меня вопрос - полуОФФТопик
а какой в вашей практике был минимальный "период хранения остатков" на регистрах

P.S. А то меня терзают смутные сомнения, что нам могут понадобится итоги с точностью до секунды  Улыбка
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #32 - 22. Февраля 2011 :: 03:58
Печать  
"период хранения остатков" - это период между приходом и списанием?

А что смущает в необходимости итогов с точностью до секунды?


или ты имеешь в виду разницу между соседними значениями Period в таблицах RG?
Для регистров остатков 1Ска не дает такой настройки.
Если же ручками поддерживать актуальность этой таблицы... То в любом случае - это означает, что движения должны идти с точностью до долей секунды.
У меня, конечно, давно ходит идея - попробовать ручками поменять в Date_Time_IDdoc время на некратное секунде и попробовать провести такой документ - но все никак не соберусь.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #33 - 22. Февраля 2011 :: 04:11
Печать  
Satans Claws писал(а) 22. Февраля 2011 :: 03:58:
"период хранения остатков" - это период между приходом и списанием?

А что смущает в необходимости итогов с точностью до секунды?


или ты имеешь в виду разницу между соседними значениями Period в таблицах RG?
Для регистров остатков 1Ска не дает такой настройки.
Если же ручками поддерживать актуальность этой таблицы... То в любом случае - это означает, что движения должны идти с точностью до долей секунды.
У меня, конечно, давно ходит идея - попробовать ручками поменять в Date_Time_IDdoc время на некратное секунде и попробовать провести такой документ - но все никак не соберусь.


я имел ввиду именно разницу между соседними значениями в таблице RG.
хотел спросить в каком случае необходимо хранить итоги "по секундам" - не могу придумать такую задачу, а в практике не попадалось
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #34 - 22. Февраля 2011 :: 05:01
Печать  
lustin писал(а) 22. Февраля 2011 :: 04:11:
я имел ввиду именно разницу между соседними значениями в таблице RG.
хотел спросить в каком случае необходимо хранить итоги "по секундам" - не могу придумать такую задачу, а в практике не попадалось


Для такой задачи
а) движения должны делаться с точностью до долей секунды
б) этих движений в пределах секунды должно быть столько, чтоб затраты на получение остатка на какой-то момент от ближайшей минуты превышали затраты на хранение.

В общем - имх#ется мне, что для такой задачи надо смотреть не в сторону 1Ски как платформы.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #35 - 22. Февраля 2011 :: 05:53
Печать  
lustin писал(а) 22. Февраля 2011 :: 04:11:
Satans Claws писал(а) 22. Февраля 2011 :: 03:58:
"период хранения остатков" - это период между приходом и списанием?

А что смущает в необходимости итогов с точностью до секунды?


или ты имеешь в виду разницу между соседними значениями Period в таблицах RG?
Для регистров остатков 1Ска не дает такой настройки.
Если же ручками поддерживать актуальность этой таблицы... То в любом случае - это означает, что движения должны идти с точностью до долей секунды.
У меня, конечно, давно ходит идея - попробовать ручками поменять в Date_Time_IDdoc время на некратное секунде и попробовать провести такой документ - но все никак не соберусь.


я имел ввиду именно разницу между соседними значениями в таблице RG.
хотел спросить в каком случае необходимо хранить итоги "по секундам" - не могу придумать такую задачу, а в практике не попадалось

ни в какой из встечающихся на 1с.
Даже для некоторых задач месяц слишком много.
Даже можно сказать наоборот есть мысли как можно улучшить
тот регистр(описанный в статье) что есть сейчас ( но это никак не связано с доведением до rg по секундам ).
  
Наверх
 
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #36 - 01. Марта 2011 :: 12:46
Печать  
Цитата:
Что делаем
1. Создаем копию таблицы RG405 в Х_RG405
2. Копируем данные из  RG405 в  Х_RG405
3. Удаляем таблицу RG405
4.Создаем RG405 с полем PERIOD имеет тип   smalldatetime
5. Копируем данные из  Х_RG405 в  Х_RG405
6. Создаем индекс VIA408 в таблице RG405
7. Удаляем таблицу Х_RG405
8.Цель достигрнута.  Работаем в обновленной 1с

А что так сложно то:
Можно ведь так сделать

if exists (select * from dbo.sysindexes where name = N'VIA408 ' and id = object_id(N'[dbo].[RG405]'))
drop index [dbo].[RG405].[VIA408 ]
GO
ALTER TABLE [dbo].[RG405] DROP CONSTRAINT [PK_RG405]
GO
ALTER TABLE [dbo].[RG405] ALTER COLUMN PERIOD SMALLDATETIME NOT NULL
GO
ALTER TABLE [dbo].[RG405] ADD CONSTRAINT [PK_RG405] PRIMARY KEY CLUSTERED
     ([PERIOD],
      [SP4062],
      [SP408],
      [SP418],
      [SP3117]
     )  ON [PRIMARY]
GO

CREATE  INDEX [VIA408 ] ON [dbo].[RG405]([PERIOD], [SP408]) ON [PRIMARY]
GO

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: статья Ускоряем регисты v77 для базы MS SQL
Ответ #37 - 01. Марта 2011 :: 18:14
Печать  
(nice)  этот способ был описан в #24
Да и не важно каким способом делать важен результат
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать