| 
    
            
         
         | 
    
  | 
Совет по ускорению 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) И? Со скоростью-то что?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |