|   |   | 
| 
 | Совет по ускорению 1с | ☑ | ||
|---|---|---|---|---|
| 0
    
        Маленький Вопросик 28.06.17✎ 15:00 | 
        Товарищи, есть бд УТ 10.3 серверная, 100 гб. 
 подскажите как ускорить работу штатными методами. | |||
| 26
    
        Dotoshin 28.06.17✎ 15:26 | 
        Если база серверная, то посмотри вот этот видос, там как раз в целом про ускорение 
 https://youtu.be/oljKKUJwAUw может откроешь для себя что-то новое... | |||
| 27
    
        Maniac 28.06.17✎ 15:32 | 
        Удали историю заказов, чистка оснований. почистить все нафиг в регистрах заказов.
 Удали все старые установки цен и регистрации цен. Попробуй поставить нужные индексы в регистрах на нужных измерениях | |||
| 28
    
        Maniac 28.06.17✎ 15:34 | 
        Еще я резал базу УТ при сохранении всей истории продаж.
 Создал спец документ ПродажиОбороты. Загрузил в них данные. Сделал в этой же базе свертку остатков. ПОлностью снял все документы старые с проведения. Провел обороты продаж... И в база просто становилась как новая. При этом все остатки - причем даже по партиям с теми же поступлениями... и тп.. Все обороты продаж полностью за все года... | |||
| 29
    
        Вафель 28.06.17✎ 15:34 | 
        отключить онлайн партии     | |||
| 30
    
        Маленький Вопросик 28.06.17✎ 15:37 | 
        (28) у меня процедура среза такая
 1 снимаются остатки на конец определенной даты (создаются одной кнопкой оприход и списание) 2 начинает удалять все документы до этой даты 3 проводится пункт 1 все делается нажатием одной кнопки... но доооооолго) | |||
| 31
    
        Вафель 28.06.17✎ 15:39 | 
        (28) те регистры все остались, только документы удалил? А в чем тогда свертка?     | |||
| 32
    
        Маленький Вопросик 28.06.17✎ 15:46 | 
        (28) удаление - отмена проведения, распроведение     | |||
| 33
    
        Maniac 28.06.17✎ 15:47 | 
        (31)) эээ. что значит теже. продажи оборотный регситр - он летает.
 Заситка остаточных регистров - это по сути 90 процентов базы. итоги, таблицы движений - в ноль. | |||
| 34
    
        Maniac 28.06.17✎ 15:51 | 
        ВОт что значит не учились на 1С
 Я курсы в 2000 году. у меня был замечательный препод и я раз и навсегда заруьил на носу что такое оборотные и остаточные регистры. какие у них таблицы и суть. | |||
| 35
    
        _Batoo 28.06.17✎ 16:14 | 
        (28), (33)
 Поясните, пожалуйста. Отличие от обычной свертки, как я понял, это то, что вы сохранили оборотные регистры как есть, да? Т.е. можно получить оборот за "старый" период, но остатки на эти даты узнать уже нельзя?) | |||
| 36
    
        Вафель 28.06.17✎ 16:16 | 
        свертка на самом деле не особо поможет ускорить базу     | |||
| 37
    
        Вафель 28.06.17✎ 16:17 | 
        Конечно если, все отчеты не попадают в индекс и делают фулл скан по таблицам движений - тогда да     | |||
| 38
    
        wayss 28.06.17✎ 16:17 | 
        (32) размер вашей базы в общем случае ничего не значит. Нужен список таблиц с размерами. 
 И отладчиком искать медленные места и разбираться в причинах. | |||
| 39
    
        Dotoshin 28.06.17✎ 16:20 | 
        (36) Обоснуй     | |||
| 40
    
        Tateossian 28.06.17✎ 16:21 | 
        (0) Переложить самые активные таблицы в рам-диск.     | |||
| 41
    
        Tateossian 28.06.17✎ 16:22 | 
        Вот пример такого скрипта с УПП
 USE tempdb BEGIN TRANSACTION SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[_AccumRg21466]( [_Period] [datetime] NOT NULL, [_RecorderTRef] [binary](4) NOT NULL, [_RecorderRRef] [binary](16) NOT NULL, [_LineNo] [numeric](9, 0) NOT NULL, [_Active] [binary](1) NOT NULL, [_RecordKind] [numeric](1, 0) NOT NULL, [_Fld21467RRef] [binary](16) NOT NULL, [_Fld21468RRef] [binary](16) NOT NULL, [_Fld21469RRef] [binary](16) NOT NULL, [_Fld21470RRef] [binary](16) NOT NULL, [_Fld21471_TYPE] [binary](1) NOT NULL, [_Fld21471_RTRef] [binary](4) NOT NULL, [_Fld21471_RRRef] [binary](16) NOT NULL, [_Fld21472RRef] [binary](16) NOT NULL, [_Fld21473RRef] [binary](16) NOT NULL, [_Fld21474RRef] [binary](16) NOT NULL, [_Fld21475RRef] [binary](16) NOT NULL, [_Fld21476] [numeric](15, 3) NOT NULL, [_Fld21477] [numeric](15, 2) NOT NULL, [_Fld21478RRef] [binary](16) NOT NULL, [_Fld21479] [binary](1) NOT NULL, [_Fld21480] [numeric](9, 0) NOT NULL, [_Fld21481_TYPE] [binary](1) NOT NULL, [_Fld21481_RTRef] [binary](4) NOT NULL, [_Fld21481_RRRef] [binary](16) NOT NULL, [_Fld21482] [datetime] NOT NULL, [_Fld21483] [numeric](9, 0) NOT NULL ) ON [PRIMARY] END SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByPeriod_TRN') CREATE UNIQUE CLUSTERED INDEX [_AccumRg21466_ByPeriod_TRN] ON [dbo].[_AccumRg21466] ( [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims21484_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByDims21484_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21468RRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims28914_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByDims28914_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21467RRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims28915_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByDims28915_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21471_TYPE] ASC, [_Fld21471_RTRef] ASC, [_Fld21471_RRRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByProperty21485_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByProperty21485_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21481_TYPE] ASC, [_Fld21481_RTRef] ASC, [_Fld21481_RRRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByRecorder_RN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByRecorder_RN] ON [dbo].[_AccumRg21466] ( [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [PRIMARY] INSERT INTO [dbo].[_AccumRg21466] ([_Period] ,[_RecorderTRef] ,[_RecorderRRef] ,[_LineNo] ,[_Active] ,[_RecordKind] ,[_Fld21467RRef] ,[_Fld21468RRef] ,[_Fld21469RRef] ,[_Fld21470RRef] ,[_Fld21471_TYPE] ,[_Fld21471_RTRef] ,[_Fld21471_RRRef] ,[_Fld21472RRef] ,[_Fld21473RRef] ,[_Fld21474RRef] ,[_Fld21475RRef] ,[_Fld21476] ,[_Fld21477] ,[_Fld21478RRef] ,[_Fld21479] ,[_Fld21480] ,[_Fld21481_TYPE] ,[_Fld21481_RTRef] ,[_Fld21481_RRRef] ,[_Fld21482] ,[_Fld21483]) (SELECT [_Period] ,[_RecorderTRef] ,[_RecorderRRef] ,[_LineNo] ,[_Active] ,[_RecordKind] ,[_Fld21467RRef] ,[_Fld21468RRef] ,[_Fld21469RRef] ,[_Fld21470RRef] ,[_Fld21471_TYPE] ,[_Fld21471_RTRef] ,[_Fld21471_RRRef] ,[_Fld21472RRef] ,[_Fld21473RRef] ,[_Fld21474RRef] ,[_Fld21475RRef] ,[_Fld21476] ,[_Fld21477] ,[_Fld21478RRef] ,[_Fld21479] ,[_Fld21480] ,[_Fld21481_TYPE] ,[_Fld21481_RTRef] ,[_Fld21481_RRRef] ,[_Fld21482] ,[_Fld21483] FROM [upp].[dbo].[_AccumRg21466] WITH (TABLOCK)) USE upp IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByRecorder_RN') DROP INDEX [_AccumRg21466_ByRecorder_RN] ON [dbo].[_AccumRg21466] IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByProperty21485_RTRN') DROP INDEX [_AccumRg21466_ByProperty21485_RTRN] ON [dbo].[_AccumRg21466] IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims28915_RTRN') DROP INDEX [_AccumRg21466_ByDims28915_RTRN] ON [dbo].[_AccumRg21466] IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims28914_RTRN') DROP INDEX [_AccumRg21466_ByDims28914_RTRN] ON [dbo].[_AccumRg21466] IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims21484_RTRN') DROP INDEX [_AccumRg21466_ByDims21484_RTRN] ON [dbo].[_AccumRg21466] IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByPeriod_TRN') DROP INDEX [_AccumRg21466_ByPeriod_TRN] ON [dbo].[_AccumRg21466] WITH ( ONLINE = OFF ) IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND type in (N'U')) DROP TABLE [dbo].[_AccumRg21466] SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[_AccumRg21466]( [_Period] [datetime] NOT NULL, [_RecorderTRef] [binary](4) NOT NULL, [_RecorderRRef] [binary](16) NOT NULL, [_LineNo] [numeric](9, 0) NOT NULL, [_Active] [binary](1) NOT NULL, [_RecordKind] [numeric](1, 0) NOT NULL, [_Fld21467RRef] [binary](16) NOT NULL, [_Fld21468RRef] [binary](16) NOT NULL, [_Fld21469RRef] [binary](16) NOT NULL, [_Fld21470RRef] [binary](16) NOT NULL, [_Fld21471_TYPE] [binary](1) NOT NULL, [_Fld21471_RTRef] [binary](4) NOT NULL, [_Fld21471_RRRef] [binary](16) NOT NULL, [_Fld21472RRef] [binary](16) NOT NULL, [_Fld21473RRef] [binary](16) NOT NULL, [_Fld21474RRef] [binary](16) NOT NULL, [_Fld21475RRef] [binary](16) NOT NULL, [_Fld21476] [numeric](15, 3) NOT NULL, [_Fld21477] [numeric](15, 2) NOT NULL, [_Fld21478RRef] [binary](16) NOT NULL, [_Fld21479] [binary](1) NOT NULL, [_Fld21480] [numeric](9, 0) NOT NULL, [_Fld21481_TYPE] [binary](1) NOT NULL, [_Fld21481_RTRef] [binary](4) NOT NULL, [_Fld21481_RRRef] [binary](16) NOT NULL, [_Fld21482] [datetime] NOT NULL, [_Fld21483] [numeric](9, 0) NOT NULL ) ON [RAMDATA] END SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByPeriod_TRN') CREATE UNIQUE CLUSTERED INDEX [_AccumRg21466_ByPeriod_TRN] ON [dbo].[_AccumRg21466] ( [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [RAMDATA] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims21484_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByDims21484_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21468RRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [RAMDATA] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims28914_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByDims28914_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21467RRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [RAMDATA] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByDims28915_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByDims28915_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21471_TYPE] ASC, [_Fld21471_RTRef] ASC, [_Fld21471_RRRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [RAMDATA] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByProperty21485_RTRN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByProperty21485_RTRN] ON [dbo].[_AccumRg21466] ( [_Fld21481_TYPE] ASC, [_Fld21481_RTRef] ASC, [_Fld21481_RRRef] ASC, [_Period] ASC, [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [RAMDATA] SET ANSI_PADDING ON IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[_AccumRg21466]') AND name = N'_AccumRg21466_ByRecorder_RN') CREATE UNIQUE NONCLUSTERED INDEX [_AccumRg21466_ByRecorder_RN] ON [dbo].[_AccumRg21466] ( [_RecorderTRef] ASC, [_RecorderRRef] ASC, [_LineNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 75) ON [RAMDATA] INSERT INTO [dbo].[_AccumRg21466] ([_Period] ,[_RecorderTRef] ,[_RecorderRRef] ,[_LineNo] ,[_Active] ,[_RecordKind] ,[_Fld21467RRef] ,[_Fld21468RRef] ,[_Fld21469RRef] ,[_Fld21470RRef] ,[_Fld21471_TYPE] ,[_Fld21471_RTRef] ,[_Fld21471_RRRef] ,[_Fld21472RRef] ,[_Fld21473RRef] ,[_Fld21474RRef] ,[_Fld21475RRef] ,[_Fld21476] ,[_Fld21477] ,[_Fld21478RRef] ,[_Fld21479] ,[_Fld21480] ,[_Fld21481_TYPE] ,[_Fld21481_RTRef] ,[_Fld21481_RRRef] ,[_Fld21482] ,[_Fld21483]) (SELECT [_Period] ,[_RecorderTRef] ,[_RecorderRRef] ,[_LineNo] ,[_Active] ,[_RecordKind] ,[_Fld21467RRef] ,[_Fld21468RRef] ,[_Fld21469RRef] ,[_Fld21470RRef] ,[_Fld21471_TYPE] ,[_Fld21471_RTRef] ,[_Fld21471_RRRef] ,[_Fld21472RRef] ,[_Fld21473RRef] ,[_Fld21474RRef] ,[_Fld21475RRef] ,[_Fld21476] ,[_Fld21477] ,[_Fld21478RRef] ,[_Fld21479] ,[_Fld21480] ,[_Fld21481_TYPE] ,[_Fld21481_RTRef] ,[_Fld21481_RRRef] ,[_Fld21482] ,[_Fld21483] FROM [tempdb].[dbo].[_AccumRg21466] WITH (NOLOCK)) COMMIT TRANSACTION GO | |||
| 42
    
        Tateossian 28.06.17✎ 16:23 | 
        Этот скрипт, конечно, сделан не вручную:)
 Через генератор в консоли SSMS | |||
| 43
    
        Tateossian 28.06.17✎ 16:23 | 
        И не забыть делать разностный бэкап, скажем, каждые 5 минут.     | |||
| 44
    
        Вафель 28.06.17✎ 16:25 | 
        (43) такие портянки принято ссылками давать, а не вываливать сюда     | |||
| 45
    
        Tateossian 28.06.17✎ 16:26 | 
        (44) Куда ссылкой дать? На rdp от моего сервера?     | |||
| 46
    
        Вафель 28.06.17✎ 16:27 | 
        (45) Не знаешь где текстовые файлы выкладывать?     | |||
| 47
    
        Tateossian 28.06.17✎ 16:27 | 
        (46) Это пример скрипта. У каждого он свой будет. тебе места жалко в интернете? Я для примера привел - вроде сложный, а по сути - ерунда.     | |||
| 48
    
        Вафель 28.06.17✎ 16:31 | 
        А скажи зачем индексы пересоздавать, когда есть операция ребилд?     | |||
| 49
    
        rozer76 28.06.17✎ 16:33 | 
        (0) сначала (14) п.п. 1 потом нужно понять причину - используй на свой вкус http://www.gilev.ru, ЦУП или прогу от софпоинт это все покажет в одном месте данные perfmon/profiler/техжурнала. Но тут квалификация нужна ну или ищи 1с:эксперта и поставь ему ящик бира     | |||
| 50
    
        ptiz 28.06.17✎ 16:36 | 
        (49) ТС хочет готовый рецепт: кнопку "Ускорить 1С".     | |||
| 51
    
        Вафель 28.06.17✎ 16:36 | 
        (49) Вначале нужно онлайн партии отключить.
 А потом... а потом окажется, что уже и не тормозит | |||
| 52
    
        Tateossian 28.06.17✎ 16:56 | 
        (48) У тебя по умолчанию ииндексы лежат в группе PRIMARY, а я их вместе с таблицами переношу в другую группу - RAMDATA. Соответственно, CREATE никто не отменял после DROP. А ребилд только перестраивает некластеризованные индексы с учетом филлфактор и прочих тонкостей.     | |||
| 53
    
        Tateossian 28.06.17✎ 16:56 | 
        (51) Пфф, меня бы босс за такие отключения вздернул бы.     | |||
| 54
    
        Tateossian 28.06.17✎ 17:00 | 
        ТС, умеешь готовить ms sql, есть права для работы с ним?     | |||
| 55
    
        rozer76 28.06.17✎ 17:01 | 
        (51) это уже методология а уверенности нет что разрешат пользователи     | |||
| 56
    
        Aleksey 28.06.17✎ 17:04 | 
        (51) заодно и резервы отключить.
 И движения товара | |||
| 57
    
        Tateossian 28.06.17✎ 17:04 | 
        (39) А он прав. Все тормоза - это из-за таблиц итогов. Хоть сворачивай, хоть не сворачивай базу - они всегда будут "как хвосты" тянуться. Более того, 1С при upadate юзает конструкцию (WITH TABLOCK) - так что, сворачивай нет сворачивай, а проблема-то в конкуренции за ресурсы не исчезнет.
 Я делал другой способ, штатными методами: отключал использование итогов, СВОРАЧИВАЛ базу и переписывал все запросы с итогами. Действительно, стало работать быстрее на запись, на чтение стало дольше, но блокировки ушли. | |||
| 58
    
        ptiz 28.06.17✎ 17:20 | 
        (57) Что за волшебный способ? Если чтение стало дольше - дольше таблицы держатся транзакциями.
 И как можно ускорить запись набора записей регистра, если она делается платформой? | |||
| 59
    
        Генератор 28.06.17✎ 17:23 | 
        (58) чтение итогов дольше, т.к. они не хранятся, считать приходится. а запись платформой делается быстрее потому-что не надо актуализировать итоги     | |||
| 60
    
        Вафель 28.06.17✎ 17:25 | 
        С партиями онлайн никакие настройки не помогут     | |||
| 61
    
        Вафель 28.06.17✎ 17:28 | 
        (58) при записи набора идет пересчет итогов.     | |||
| 62
    
        Tateossian 28.06.17✎ 17:39 | 
        В общем две рекомендации, ТС:
 1) Читай мануалы по работе с СУБД и оптимизируй саму базу данных. Вариант я писал выше. Если база не на ССД - то это самый первый шаг. 2) Положи на одну машину физическую SQL и 1С сервер и отключи tcp, только shared memory. 3) Сделай кейс, в котором отключишь итоги по ключевым партионным регистрам, запустишь параллельные сеансы с проведением документов по ним и проводи тесты производительности (считай время суммарное операции до оптимизации и после). Если результат дает 20% и более - значит, переноси в продакшн. | |||
| 63
    
        Tateossian 28.06.17✎ 17:41 | 
        (62) У меня счет с нуля начинается, походу:)     | |||
| 64
    
        X Leshiy 28.06.17✎ 17:43 | 
        (63) У тебя, походу, пункт 2 не нужен :)     | |||
| 65
    
        Вафель 28.06.17✎ 17:43 | 
        (62) а как ты остатки контролируешь? без итогов то?     | |||
| 66
    
        Вафель 28.06.17✎ 17:44 | 
        (62) Вообще у тебя подход от обратного. 
 А нужно вначале найти узкие места | |||
| 67
    
        Tateossian 28.06.17✎ 17:44 | 
        (65) Читай выше. 
 ...Я переписал ВСЕ ЗАПРОСЫ к виртуальным таблицам на физические. | |||
| 68
    
        Tateossian 28.06.17✎ 17:45 | 
        (66) Да, пункт перед 1, который 0: найти узкие места и к ним применить описанные далее способы. А по сабжу, на 90% в них проблема (если речь о типовой).     | |||
| 69
    
        Tateossian 28.06.17✎ 17:48 | 
        Там в утешке очень неоптимально типовой запрос к регистрам партий написан, на мисте была куча веток по его оптимизации. Посмотри, стоит свойство "Индексировать" у поля номенклатура в регистре? Еще вроде к документу партии/оприходования индексацию можно установить (если ФИФО, а не по средней).     | |||
| 70
    
        Cyberhawk 28.06.17✎ 18:11 | 
        (57) "отключал использование итогов" // Что, переписывал все запросы, которые используют виртуальные таблицы регистра? Много таких было? И что за регистр?     | |||
| 71
    
        Tateossian 28.06.17✎ 18:19 | 
        (70) Товары на складах и ндс по партиям, может еще какой регистр, но их немного.
 Спасибо разработчикам конфы, что, по сути, всего одна точка входа для получения остатков, а не разбросано по всей конфигурации. И несколько отчетов и заполнялок поправить пришлось. Скорее, это задача больше на внимательность, чем на умение качественно кодить. | |||
| 72
    
        Cyberhawk 28.06.17✎ 18:30 | 
        (71) Ну т.е. ты вместо "Выбрать КоличествоОстаток Из Товары.Остатки" заменял на "Выбрать СУММА(Количество) Из Товары", типа так?     | |||
| 73
    
        Tateossian 28.06.17✎ 18:30 | 
        (72) Да, все верно.     | |||
| 74
    
        Cyberhawk 28.06.17✎ 18:31 | 
        (73) Ок, спс за то, что поделился успешным опытом, может и пригодится когда-нибудь     | |||
| 75
    
        Tateossian 28.06.17✎ 18:36 | 
        А еще у меня используется механизм синонимов и представлений. Например, таблицу 1С видит как TABLE, но физически она на другом сервере. Это удобно для условно постоянных данных: адресных классификаторов, например. А еще есть такой "хинт": вместо таблицы подсунул представление (VIEW), которое само по себе - запрос. В общем, работоспособность удовлетворительная: при размере базы в 300Гб все летает, никаких жалоб (постоянных). Правда, все оптимизаторские штуки подробно описаны в редмайне, дабы потом не потеть в случае форс-мажора.     | |||
| 76
    
        МихаилМ 28.06.17✎ 19:54 | 
        (75)
 как решаете проблему реструктуризации ? | |||
| 77
    
        МихаилМ 28.06.17✎ 20:00 | 
        (75)
 "такой "хинт"" . hint - намек, подсказка,совет,указание | |||
| 78
    
        Tateossian 28.06.17✎ 20:57 | 
        (76) Спецзапрос после реструктуризации возвращает все в оптимизированный режим. Перед обнлвлением всегда делаю бэкпп. Если реструктуризация сыпится, другим скриптом возвращаю в исходное состояние, делается реструктуризация, и дальше как в первом предложении. Почти все это на батниках. Работает само по себе.     | |||
| 79
    
        Tateossian 28.06.17✎ 21:01 | 
        (77)  Слово "хинт" можно понимать буквально: это безусловная подскахка  оптимизатору запросов sql.     | |||
| 80
    
        H A D G E H O G s 28.06.17✎ 21:03 | 
        Дикости какие.
 Не проще регзаданием устанавливать минимальную дату итогов на 3 месяца назад и не заниматься этой дичью? | |||
| 81
    
        H A D G E H O G s 28.06.17✎ 21:03 | 
        Это шедевр!     | |||
| 82
    
        H A D G E H O G s 28.06.17✎ 21:04 | 
        Нельзя недооценивать глубину глубин.
 Чувак намертво привязал к себе контору. | |||
| 84
    
        H A D G E H O G s 28.06.17✎ 21:05 | 
        Неудивительно, что на него тут же съреагировал (но тут должно быть другое слово, но да ладно) МихаилМ, цитируя которого видим: "многие любят, когда все просто. я люблю когда все сложно."
 Это, прям, бинго. | |||
| 85
    
        Tateossian 28.06.17✎ 21:07 | 
        (80)  Я тебе скажу больше - у нас некторые люди работают в прошлом году. А то что ты пишешь тоже сделано, на 01.01.2017.     | |||
| 86
    
        H A D G E H O G s 28.06.17✎ 21:08 | 
        (85) Как это может быть сделано, если Итоги отключены?     | |||
| 87
    
        Tateossian 28.06.17✎ 21:13 | 
        (86) Я ежедневно базу восстанавливаю, по фифо партионному. Обычно этот период - квартал. Так вот, в базе примерно 40000 документов нужно прогнать восстановлением по партиям. И мне на это хватает 6-7 часов. А, ещё курсовые посчитать, восстановив взаимооасчеты.     | |||
| 88
    
        Tateossian 28.06.17✎ 21:15 | 
        (87) Там, где отключены итоги переписаны запросы, а остатки внесены итоговой корректировкой на начало года.     | |||
| 89
    
        Cyberhawk 28.06.17✎ 21:16 | 
        (86) Так не по всем регистрам отключены     | |||
| 90
    
        Tateossian 28.06.17✎ 21:18 | 
        Еще могу рассказать как себестоимость считаем с помощую матриц, а рассчет делается dll'кой, так как 1с-ка долго считает, примерно 30 минут. А нативная ВК - поимерно 500 сек. В типовой расчет даже часа не хватает, а на большее меня не хватает.     | |||
| 91
    
        Волшебник модератор 28.06.17✎ 21:19 | 
        (90) Не надо.     | |||
| 92
    
        Tateossian 28.06.17✎ 21:20 | 
        Моя УПП - это пример хай-лоад системы, ей богу. Все кручу ERP -  ох тяжко переходить будет.     | |||
| 93
    
        H A D G E H O G s 28.06.17✎ 21:21 | 
        (87) "Так вот, в базе примерно 40000 документов нужно прогнать восстановлением по партиям."
 Собираем полную таблицу остатков, отключаем Итоги, начинаем проводить эти 40000 с инкрементом этой Таблицы, включаем Итоги. | |||
| 94
    
        H A D G E H O G s 28.06.17✎ 21:21 | 
        (93) *** молимся, чтобы ничего не упало.     | |||
| 95
    
        Tateossian 28.06.17✎ 21:22 | 
        (94) Уже год все работает, молитв не нужно.     | |||
| 96
    
        Tateossian 28.06.17✎ 21:23 | 
        (91) Хорошо.     | |||
| 97
    
        МихаилМ 28.06.17✎ 22:06 | 
        (96)
 я с 5 контор предлагал внедрить аналоги Ваших внедрения и везде получал отказ по причине невозможности найти замену в случае если меня переедет танк. сорри за оффтоп | |||
| 98
    
        Злопчинский 29.06.17✎ 00:28 | 
        "Я охреневаю от своей охрененности"     | |||
| 99
    
        Tateossian 29.06.17✎ 01:27 | 
        (97) Одинесники меня удивляют отсутствием любознательности. И в том, что они расписываются в своей тупости (не все). Я же специально даже написал в одном из постов, что система лежит, ко всему прочему, на RAM диске (там же темп файлы серверные, до кучи, а журнал лежит на SSD, ежедневно переносясь в архив): когда электрики проводили работы, они предупредили, что в полночь обесточат здание. Ну я в 23.45 по RDP пытаюсь зайти на рабочий хост: а не тут-то было, электрики в 23 вырубили свет и батареи не хватило. И как ни странно, я базу восстановил за 15 минут, примерно, никаких проблем. Вот мой подчиненный, светило мое, сидит и думает над задачей весь день: что делаешь, спрашиваю. Да вот, нужно в этикетку длинное название уместить все, если оно не умещается - уменьшаем шрифт и так пока не уместим" (растягивать ячейку нельзя). Он нашел какой-то мануал на инфостарте от извращенцев и пытался сделать. Я говорю ему: "Возьми лист, сделай ему размер этой ячейки, туда же макет в эту одну ячейку и делов: проверяй вывод, влезло - ок, не влезло - уменьшай шрифт". Пять минут и проблема решена. Нет же, мы не хотим думать, мы будем искать "умные" советы от экспертов весь день. Как с детьми, ей богу, няньчусь. СКД юзать не хотят - а это же половина проблем решенных: нет, будем заводить новые структуры для хранения трех объектов. Я еще добрый, не ругаю сильно, а за ошибки выхода за пределы массива руки отрубать надо. Или другой сотрудник: есть у нас сайт электронного документооборота, там все документы (помимо 1С). И понадобилось штук 30 документов вывести оттуда, так программист скриншоты делал сидел. Вот жеж. Эта проблема решается в консоли java script'ом десяткой строк кода... Я получаю по шапке, разумеется, от Генерального, но иногда устаешь покрывать своих раздолбаев. Хотя ребята все умные, толковые, но порой удивляешься...     | |||
| 100
    
        Tateossian 29.06.17✎ 01:31 | 
        (97) А вес решения, которые я внедрил задокументированы в Редмайне с подробным описанием, чтобы, не дай бог, меня танк переехал, а контора не встала. И такое решение намного лучше, чем постоянно говорить сотрудникам "Ну это 1С тормозит, это же типовая, так все работают, плюясь, больше ее никак не ускорить, мучайтесь, ребята".     | |||
| 101
    
        Tateossian 29.06.17✎ 01:33 | 
        Вот вопрос экспертам: как в типовой конфигурации из куска кода сделать функцию наиболее быстрым способом?     | |||
| 102
    
        H A D G E H O G s 29.06.17✎ 01:53 | 
        (100) "которые я внедрил задокументированы в Редмайне с подробным описанием"
 Хахаха. Его еще сначало найти надо, это описание. Ставлю 100500%, что как только тебя там не станет, через критичный промежуток времени "без сбоя" все станет колом. | |||
| 103
    
        H A D G E H O G s 29.06.17✎ 01:54 | 
        (101) Странный вопрос - ну, берем и копируем, это если отвечать на твой вопрос.
 Обособить код, чтобы он не зависил от типовых штоле? или что? | |||
| 104
    
        H A D G E H O G s 29.06.17✎ 01:59 | 
        Да че там с нестандартными фишками? О чем вообще речь.
 Есть тиражное решение, с мануалами и простейшим кодом. Постоянно звонят программисты, которые докручивают там велосипеды и спотыкаются на них, так как поддержка уже снята. 99% при снятой поддержке, при обновлении, оставляют старые объекты. Ну просто, не задумаваясь. А потом звонят и говорят - ваше решение не работает, он какие-то процедуры подписки на события не может найти. | |||
| 105
    
        Tateossian 29.06.17✎ 02:00 | 
        (103) А проще? В один клик?     | |||
| 106
    
        H A D G E H O G s 29.06.17✎ 02:03 | 
        (105) Рефакторинг - Выделить фрагмент     | |||
| 107
    
        H A D G E H O G s 29.06.17✎ 02:03 | 
        Если ты об этом     | |||
| 108
    
        H A D G E H O G s 29.06.17✎ 02:04 | 
        Короче, давай отгадку, великий Сфинск     | |||
| 109
    
        Tateossian 29.06.17✎ 02:07 | 
        (106) Да, красава. Но многие этого не знают:)     | |||
| 110
    
        Tateossian 29.06.17✎ 02:10 | 
        Люди, может за одно подскажете. В общем хочу сделать планирование производства - по уму, с помощью имитационного моделирования. В частности, при помощи вот энтого
 https://repast.github.io/ У кого был опыт использования моделирования для планирования? Или кто работал с AnyLogic? | |||
| 111
    
        ILM гуру 29.06.17✎ 06:56 | 
        (110) Делал планирование как для серийного, так и для индивидуального производства. Могу дать общий совет:
 1. Полное планирование производства делать только укрупненным на период и только для оценки занятости или исполнимости плана. 2. Оперативное планирование производство должно работать на базе приоритетов и системного ограничения, а у каждого заказчика это разные понятия. 3. Исполнитель должен строго следовать оперативному плану, не пытаясь сделать что-то другое вместо нужного. 4. Обеспечение производства должно быть со страховым запасом, на случай статотклонений от графика работы оборудования. | |||
| 112
    
        ptiz 29.06.17✎ 09:24 | 
        Добровольно отказаться от физических таблиц итогов?
 Мама дорогая! (*wall) | |||
| 113
    
        rozer76 29.06.17✎ 09:55 | ||||
| 114
    
        rphosts 29.06.17✎ 12:33 | 
        (57) сплиттеры не спасут отца русской демократии?     | |||
| 116
    
        2dolist 29.06.17✎ 13:46 | 
        (115) зачем ты такие nsfw вещи выкладываешь     | |||
| 117
    
        Лефмихалыч модератор 29.06.17✎ 13:50 | 
        мне кажется, этот джентльмен (99) хочет сказать, что мы здесь все - не джентльмены.
 А еще есть подозрение, что он не любит пролетариата. | |||
| 118
    
        Лефмихалыч модератор 29.06.17✎ 13:51 | 
        в связи с этим я решил поставить вопрос: ты откудова взялся такой бессмертный, ? Tateossian ?     | |||
| 119
    
        Имитация работы 29.06.17✎ 14:07 | 
        А что ты хочешь от человека, взявшего себе ником название выпендрежной ювелирки? =)     | |||
| 120
    
        Маленький Вопросик 01.07.17✎ 19:19 | 
        я бы хотел реально посмотреть на человека, который "шаманством" на сервере и sql сможет увеличить производительность.)     | |||
| 121
    
        mexanik_96 01.07.17✎ 19:22 | 
        (120) дак это, а метрика то сейчас какая? что висит, сколько выполняется? к чему идти? какая модель данных(сколько вставки, чтения)? как покрыто индексами?     | |||
| 122
    
        mexanik_96 01.07.17✎ 19:23 | 
        + (121) отсюда можно в железо посмотреть либо в субд, итам типа "штатными" средствами уже что то поделать     | |||
| 123
    
        Имитация работы 01.07.17✎ 19:27 | ||||
| 124
    
        Маленький Вопросик 02.07.17✎ 15:34 | 
        Чем кончилось дело:
 снял остатки, внес их опреходыванием и списанием Снес кучу документов Провел оприход и списание И пересоздал дт-шник в новую базу Сверил остатки до среза и после - обычным отчетом ведомость товаров на складах В результате, размер mdf файла уменьшился с 90 гб до 60 гб Вся операция заняла порядка 20 часов | |||
| 125
    
        ptiz 03.07.17✎ 09:00 | 
        (124) И? Со скоростью-то что?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |