Скрипты для реиндексации, перестройки индексов в SQL 2005

Публикация № 72532 02.07.10

База данных - Инструменты администратора БД

Пару скриптов, их доработка и обсуждение

SQL я знаю достаточно мало. Особенно тонкости. Поэтому просьба к знающим людям - дополните меня и ответьте на вопросы, которые есть в статье.

Как советуют знающие люди в своих статьях (в частности Гилев в статье по созданию базы 1с в SQL 2005) нужно регулярно дефрагментировать индексы и обновлять статистику. Для этого есть штатные средства и простой скрипт


http://www.gilev.ru/1c/mssql/dbreindex.htm

 


 

USE db1cut
GO
DECLARE @MyTable varchar(252)
DECLARE @MyIndex varchar(252)
DECLARE @DSQL varchar(8000)
DECLARE MyCursor CURSOR FOR
SELECT o.name, i.name
FROM sysobjects o INNER JOIN sysindexes i ON o.id = i.id
WHERE (o.xtype = 'U') AND (INDEXPROPERTY(i.id, i.name, 'isStatistics') = 0) AND (i.dpages > 0)
ORDER BY o.name, i.indid

OPEN MyCursor
FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex
WHILE @@FETCH_STATUS=0

BEGIN
PRINT 'Перестройка индекса '+@MyIndex+' из таблицы '+@MyTable
SET @DSQL = ' BEGIN TRY
ALTER INDEX '+@MyIndex+' ON '+@MyTable+
' REBUILD WITH (ONLINE = ON,
SORT_IN_TEMPDB = ON,
STATISTICS_NORECOMPUTE = ON)
END TRY

BEGIN CATCH ALTER INDEX '+@MyIndex+' ON '+@MyTable+
' REBUILD WITH (ONLINE = OFF,
SORT_IN_TEMPDB = ON,
STATISTICS_NORECOMPUTE = ON) END CATCH;'
EXEC(@DSQL)

FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex

END
CLOSE MyCursor
DEALLOCATE MyCursor

 


Тут вроде всё понятно - пробегает по индексам и перестраивает их... Обычно перестройка (Rebuild) сопровождается обновлением статистики, но параметр STATISTICS_NORECOMPUTE = ON отключает пересчет статистики. В связи с этим вопрос: из каких соображение в данном скрипте отключен пересчет статистики? Ведь в любом случае после реорганизации/перестройки требуется пересчитать статистику...Или всё-таки нет?

Но данный скрип имеет недостаток - на больших базах долго выполняется. При круглосуточной работе неприменим. Для этого есть скрипты с избирательной перестройкой, дефрагментацией

 

http://mamyshev.spaces.live.com/blog/cns!89D4F9A2EB82023D!127.trak

 


use master

go

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_defragment_frag_indexes]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[sp_defragment_frag_indexes]

go



CREATE PROCEDURE sp_defragment_frag_indexes @maxfrag DECIMAL, @whatif VARCHAR (6) = '' AS



-- Объявляем необходимые переменные

SET NOCOUNT ON

DECLARE @tablename VARCHAR (128)

DECLARE @execstr VARCHAR (255)

DECLARE @objectid INT

DECLARE @objectowner VARCHAR(255)

DECLARE @indexid INT

DECLARE @frag DECIMAL

DECLARE @indexname CHAR(255)

DECLARE @dbname sysname

DECLARE @tableid INT

DECLARE @tableidchar VARCHAR(255)



-- На всякий случай проверяем,что база данных пользовательская

SELECT @dbname = db_name();



IF @dbname IN ('master', 'msdb', 'model', 'tempdb')

BEGIN

PRINT ' Эта процедура не может быть запущена для системных БД';

RETURN

END



-- Начинаем проверку уровня фрагментации

-- Вначале объявляем курсор

DECLARE tables CURSOR FOR

SELECT convert(varchar,so.id) FROM sysobjects so JOIN sysindexes si ON so.id = si.id WHERE so.type ='U' AND si.indid < 2 AND si.rows > 0;

-- Затем создаем временную таблицу для хранения информации о фрагментации

CREATE TABLE #fraglist (ObjectName CHAR (255), ObjectId INT, IndexName CHAR (255),IndexId INT, Lvl INT, CountPages INT, CountRows INT, MinRecSize INT, MaxRecSize INT, AvgRecSize INT, ForRecCount INT, Extents INT, ExtentSwitches INT, AvgFreeBytes INT, AvgPageDensity INT, ScanDensity DECIMAL, BestCount INT, ActualCount INT, LogicalFrag DECIMAL, ExtentFrag DECIMAL);

-- Открываем курсор

OPEN tables

-- Для каждой таблицы в базе данных выполняем команду DBCC SHOWCONTIG

FETCH NEXT FROM tables INTO @tableidchar

WHILE @@FETCH_STATUS = 0

BEGIN

-- Проходим по всем индексам для таблицы

INSERT INTO #fraglist

EXEC ('DBCC SHOWCONTIG (' + @tableidchar + ') WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS')

FETCH NEXT

FROM tables

INTO @tableidchar

END

-- Закрываем курсор

CLOSE tables

DEALLOCATE tables

-- Для проверки выводим информацию из временной таблицы

SELECT * FROM #fraglist



-- Теперь необходимо произвести дефрагментацию

-- Вначале опять объявляем курсор

DECLARE indexes CURSOR FOR

SELECT ObjectName, ObjectOwner = user_name(so.uid), ObjectId, IndexName, ScanDensity FROM #fraglist f JOIN sysobjects so ON f.ObjectId=so.id WHERE ScanDensity <= @maxfrag AND INDEXPROPERTY (ObjectId, IndexName, 'IndexDepth') > 0

-- Выводим для проверки информацию о начале дефрагментации

SELECT 'Started defragmenting indexes at ' + CONVERT(VARCHAR,GETDATE())

-- Открываем курсор

OPEN indexes

-- Проходим циклом по всем индексам

FETCH NEXT FROM indexes INTO @tablename, @objectowner, @objectid, @indexname, @frag

WHILE @@FETCH_STATUS = 0

BEGIN

SET QUOTED_IDENTIFIER ON

SELECT @execstr = 'DBCC INDEXDEFRAG (' + @dbname + ', ' + RTRIM(@tablename) + ', ' + RTRIM(@indexname) + ') WITH NO_INFOMSGS'

SELECT 'Выполняем: ' + @execstr;

if @whatif <> 'whatif' EXEC (@execstr);

SET QUOTED_IDENTIFIER OFF

FETCH NEXT FROM indexes INTO @tablename, @objectowner, @objectid, @indexname, @frag

END

-- Затем закрываем курсор

CLOSE indexes;

DEALLOCATE indexes;



-- Отчитываемся о времени завершения

SELECT 'Finished defragmenting indexes at ' + CONVERT(VARCHAR,GETDATE());



-- Удаляем временную таблицу

DROP TABLE #fraglist;

GO

---------------------------------------------------------------------------------------------



Использование:

---------------------------------------------------------------------------------------------

-- Дефрагментировать индексы таблиц базы данных Test, для которых значение параметра Scan Density < 80%



USE Test

EXEC sp_defragment_frag_indexes 80.00;
 



Скрипт производит выборочную дефрагментацию регистров...НО! Скрип предназначен для SQL 2000 и для дефрагментации использует конструкцию 

DBCC INDEXDEFRAG

Для 2005 она подходит, но советуют использовать конструкцию  

Alter Index....Reorganize. Соответственно строчка заменяется.

SELECT @execstr = 'ALTER INDEX [' + RTRIM(@indexname) + '] ON [' + RTRIM(@tablename) + '] REORGANIZE;'  

Кроме того, в скрипте нет обновления статистики

Если добавить, то кусок скрипта нужно исправить на


-- Проходим циклом по всем индексам

FETCH NEXT FROM indexes INTO @tablename, @objectowner, @objectid, @indexname, @frag

WHILE @@FETCH_STATUS = 0

BEGIN

SET QUOTED_IDENTIFIER ON

SELECT @execstr = 'ALTER INDEX [' + RTRIM(@indexname) + '] ON [' + RTRIM(@tablename) + '] REORGANIZE;'

PRINT 'Выполняем: ' + @execstr;

if @whatif <> 'whatif' EXEC (@execstr);

SELECT @execstr = 'UPDATE STATISTICS '+RTRIM(@tablename) + ' ' + RTRIM(@indexname)

PRINT 'Выполняем: ' + @execstr;

if @whatif <> 'whatif' EXEC (@execstr);

SET QUOTED_IDENTIFIER OFF

FETCH NEXT FROM indexes INTO @tablename, @objectowner, @objectid, @indexname, @frag

END

 

 


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

 

http://msmvps.com/blogs/gladchenko/archive/2008/03/31/1563721.aspx



-- INDEX REBUILD or REORGANIZE
DECLARE @SQL varchar(256), @DB_ID int;
SET @DB_ID = (SELECT DB_ID());

DECLARE reindex CURSOR GLOBAL FAST_FORWARD READ_ONLY FOR
SELECT 'ALTER INDEX ALL ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REBUILD WITH (SORT_IN_TEMPDB = ON);' AS [Инструкция T-SQL]
FROM sys.dm_db_index_physical_stats (@DB_ID, NULL, NULL, NULL, 'SAMPLED') AS afp
WHERE afp.database_id = @DB_ID
AND afp.index_type_desc IN ('CLUSTERED INDEX')
AND (afp.avg_fragmentation_in_percent >= 15 OR afp.avg_page_space_used_in_percent <= 60)
AND afp.page_count > 12
UNION ALL
SELECT [Инструкция T-SQL] =
CASE
WHEN afp.avg_fragmentation_in_percent >= 15
OR afp.avg_page_space_used_in_percent <= 60
THEN 'ALTER INDEX [' + i.name + '] ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REBUILD WITH (SORT_IN_TEMPDB = ON);'
WHEN (afp.avg_fragmentation_in_percent < 15 AND afp.avg_fragmentation_in_percent >= 10)
OR (afp.avg_page_space_used_in_percent > 60 AND afp.avg_page_space_used_in_percent < 75)
THEN 'ALTER INDEX [' + i.name + '] ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REORGANIZE;'
END
FROM sys.dm_db_index_physical_stats (@DB_ID, NULL, NULL, NULL, 'SAMPLED') AS afp
JOIN sys.indexes AS i
ON (afp.OBJECT_ID = i.OBJECT_ID AND afp.index_id = i.index_id)
AND afp.database_id = @DB_ID
AND afp.index_type_desc IN ('NONCLUSTERED INDEX')
AND (
(afp.avg_fragmentation_in_percent >= 10 AND afp.avg_fragmentation_in_percent < 15)
OR (afp.avg_page_space_used_in_percent > 60 AND afp.avg_page_space_used_in_percent < 75)
)
AND afp.page_count > 12
AND afp.OBJECT_ID NOT IN (
SELECT OBJECT_ID
FROM sys.dm_db_index_physical_stats (@DB_ID, NULL, NULL, NULL, 'SAMPLED')
WHERE database_id = @DB_ID
AND index_type_desc IN ('CLUSTERED INDEX')
AND (avg_fragmentation_in_percent >= 15 OR avg_page_space_used_in_percent < 60)
AND page_count > 1
)
ORDER BY [Инструкция T-SQL]

OPEN GLOBAL reindex
WHILE 1 = 1
BEGIN
FETCH reindex INTO @SQL
IF @@fetch_status <> 0 BREAK
-- EXEC(@SQL)
PRINT @SQL
END
CLOSE GLOBAL reindex
DEALLOCATE reindex

 


 

Скрипт опять-таки забывает про обновление статистики при реорганизации...Может всё-таки обновлять статистику не надо? Если я правильно изменил (ну не знаю я это язык, а проверить ещё не успел), то кусок с обновление статистики будет таким:

 

CASE
WHEN afp.avg_fragmentation_in_percent >= 15
OR afp.avg_page_space_used_in_percent <= 60
THEN 'ALTER INDEX [' + i.name + '] ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REBUILD WITH (SORT_IN_TEMPDB = ON);'
WHEN (afp.avg_fragmentation_in_percent < 15 AND afp.avg_fragmentation_in_percent >= 10)
OR (afp.avg_page_space_used_in_percent > 60 AND afp.avg_page_space_used_in_percent < 75)
  THEN 'ALTER INDEX [' + i.name + '] ON [' + OBJECT_NAME(afp.OBJECT_ID) + '] REORGANIZE;
 UPDATE STATISTICS ['+OBJECT_NAME(afp.OBJECT_ID) + ']  [' + i.name + '] ;'
END

 

Но и эти скрипты с выборочной дефрагментацией, как показала моя частная практика, неэффективен по времени и результату... Его, конечно, можно ночью запускать, но уже днем через пару часов интенсивной работы начинаются ЖУТКИЕ тормоза. Вплоть до того, что проведение по управленческому учету документов реализации длится более 10 МИНУТ! Ещё год назад я выяснил, что задержка происходит в одном месте - регистр "Партии товаров на складах". Именно он фрагментируется до состояния каши каждые 3 часа... 

Тогда же был написан скрипт по точечной дефрагментации индексов этого регистра. Таблицу sql этого регистра можно посмотреть с помощью какой-нибудь обработки (той, которой пользуюсь, в инете больше не нашел). После этого выполняются последовательно реорганизация и обновления статистики для каждого индекса самой таблицы и таблицы итогов. Это было на SQL 2000.

После перехода на SQL 2005 я решил отказаться от точечной дефрагментации, т.к. на бухгалтерской копии этой же базы, которая крутится на SQL 2005 уже 2 года, таких тормозов с проведением не было (хотя железо там слабее). Но фиг... опять словил те же самые грабли... И написал этот скрипт заново, только теперь с rebuild... В связи с этим вопрос. Rebuild шести индексов каждые 3 часа с очисткой кэша чем чревата кроме устранения всех тормозов в проведении документов??

Скрипт получился такой:

ALTER INDEX _Accum12425_ByDims19545_RTRN ON dbo._AccumRg12425 REBUILD WITH (SORT_IN_TEMPDB = ON);
go
ALTER INDEX _Accum12425_ByPeriod_TRN ON dbo._AccumRg12425 REBUILD WITH (SORT_IN_TEMPDB = ON);
go
ALTER INDEX _Accum12425_ByProperty18792_RTRN ON dbo._AccumRg12425 REBUILD WITH (SORT_IN_TEMPDB = ON);
go
ALTER INDEX _Accum12425_ByRecorder_RN ON dbo._AccumRg12425 REBUILD WITH (SORT_IN_TEMPDB = ON);
go
ALTER INDEX _Accum12443_ByDims_TRRRRRRRRRN ON dbo._AccumRgT12443 REBUILD WITH (SORT_IN_TEMPDB = ON);
go
ALTER INDEX _Accum12443_ByDims19545_TR ON dbo._AccumRgT12443 REBUILD WITH (SORT_IN_TEMPDB = ON);
go
DBCC FREEPROCCACHE

 

Выполняется каждые 3 часа в пиковое время: с 7 до 21... 

 

Осталось сделать выбор на ночной скрипт выборочной дефрагментации, о которых я говорил выше... Какой посоветуете?

Да и на выходной в ночь, наверное нужно запускать полную перестройку индексов и обновление статистики?

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. markers 269 07.07.10 06:56 Сейчас в теме
Подсказать не могу, но однозначно плюс за сборку всего в 1 месте!
2. zzz_natali 60 07.07.10 10:28 Сейчас в теме
Тебе сюда:
http://www.sql.ru/forum
Но там народ слишком манерный(профессиональный) - разжевывать не будут. Что-то на молекулярном уровне подскажут, а концептуально и академически прокачивайся сам.
5. anig99 2829 07.07.10 20:08 Сейчас в теме
(2) вот-вот....я в зависать ещё в одном форуме... мне пока хватает тут (:
3. rozer 300 07.07.10 13:04 Сейчас в теме
Начинающим можно посоветовать использовать Maintenance Plans...
4. anig99 2829 07.07.10 20:07 Сейчас в теме
(3) Maintenance Plans - вещь в данном случае неподходящая
6. idef 10.07.10 08:50 Сейчас в теме
Rebuild шести индексов каждые 3 часа с очисткой кэша чем чревата кроме устранения всех тормозов в проведении документов??

Череват тормозами базы на время перестройки индекса

Для какой-то оценки проделанной вами работы неплохо привести статистику: размер базы, размер соответствующих таблиц и индексов, время выполнения запроса до и после скрипта, скорость деградации производительности в течении 3 часов между запусками скриптов. Кроме того неплохо знать конфигурацию сервера и конфигурацию 1С.

ПС. А какой смысл очистки кэша каждые 3 часа?
Вы понимаете что этой операцией вы удаляете скомпилированные запросы?
7. anig99 2829 12.07.10 08:07 Сейчас в теме
(6) Да... Понимаю, что очисткой кэша удаляю скомпилированные запросы. Но очистку кэша рекомендуют делать после обновления статистики. Практика показывает, что иногда достаточно только очистки кэша, чтобы скорость записи в регистр увеличилась.
Размер базы 100 гБ.
Деградация производительности... Снижение скорости оперативного проведения по регистру партии товаров на складах с 3-4 секунд до 60-90 секунд. Снижение скорости проведение по регистру партии товаров на складах в документах более 3-4 дней с 5-6 секунд до 500 и более секунд. При этом фрагментация индексов регистра партии товаров на складах не превышает 5 процентов...

Платформа 1с 8.2.11.236 Конфа УПП 1.3 Win 2003 x64 SQL 2005 x64. 2 четырех ядерных XEON по 2ghz, 16 Гб оперативы на IBM серваке.... Но... Эти же самые затыки наблюдались на всех версиях 8.1 и УПП 1.2. На 32х битной оси и SQL 2000.
8. idef 12.07.10 16:10 Сейчас в теме
(7) ИМХО проблемы у вас не в фрагментации индексов, а в большом количестве приходов, в результате чего Скуль считает более эффективным сканирование таблиц, чем использование индексов. Тут надо смотреть план запроса и сам тормозной запрос, возможно его легче переделать, чем каждый раз "греметь винтами", кста, а дисковую систему почему сокрыли???
9. anig99 2829 13.07.10 08:36 Сейчас в теме
(8) и как бы в 1с этого не учли? По-моему, тут больше проблема в том, что постоянно исправляют документы за прошлые числа (не будет развивать тему запрета изменений задним числом и т.д. - 1с тупо не учел специфику РЕАЛЬНОЙ работы и не сделал удобного механизма альтернативного неоперативному исправлению и перепроведения документов).
Согласен, что нужно анализировать запросы на уровне SQL. Только опыта в этом никакого. Да и после этого не совсем понятно, что делать.
11. idef 13.07.10 19:36 Сейчас в теме
(9) А вы считаете что в 1С всЁ учитывают ;-)
А когда через год база будет 200Гб - каждый час реиндексировать(дефрагментировать) базу???

Проблема здесь в том что производительность в v8 надо рассматривать в рамках всей системы, т.е. аппаратная платформа+сервер БД+Сервер приложений+платформа 1С.
Базы размером более 50Г уже можно считать большими и настройка таких баз должна выполнятся индивидуально. Возьмите к примеру файловые БД - у них очень хорошая производительность для объемов до 1-2Гб в однопользовательском режиме, а с некоторого объема уже начинаются приколы.
Я не считаю что ваш путь не правильный. Но, может стоит начать разбираться с индексами и статистикой? Это даст гораздо больший выиграш в скорости и масштабируемости. При этом все те регламенты, которые предусмотрены в сервере БД никто не отменял.
Если много INSERT/UPDATE/DELETE в базе, то статистика очень быстро устаревает(характерно для OLTP баз) ее нужно обновлять периодически.
А вы знаете, что обновление статистики выполняется сервером автоматически для некоторых индексов, а для некоторых автообновление отключено. Проверьте включено-ли автообновление статистики примерно так:
DBCC SHOW_STATISTICS (N'dbo._acc1', _Acc1_ByCode_SR)
или так:
EXEC sp_autostats 'dbo._acc1'
Смысл параметров я думаю понятен.
Еще есть синхронное и асинхронное обновление статистик.
Статистика очень тонкий инструмент в сервере SQL. Теперь я думаю понятно почему большинство скриптов которые вы нашли не обновляет статистики.

(10) Диски разные, но это могут быть RAID[0,1,5,6,10]? Нужное подчеркнуть.
Монитор производительности - очередь записи на диск, например???
объем оперативы = Объем базы/4, ИМХО конечно.
12. anig99 2829 14.07.10 12:54 Сейчас в теме
(11) зачем всю? В том то и дело, что провал в производительности происходит только для 1 конкретного регистра...
13. anig99 2829 14.07.10 12:57 Сейчас в теме
(11) а в остальном буду копать дальше
14. anig99 2829 16.07.10 11:52 Сейчас в теме
(11) уточняю... automatically recompute statistics в параметрах индекса - это и есть автообновление статистики для конкретного индекса? Если да, то они были включены. Сейчас для пробы я их отключил и оставил только скрипт по перестройке этих конкретных индексов с цикличностью в час.
15. idef 20.07.10 17:53 Сейчас в теме
(14) Да. Но зачем отключать? Для экспериментов? И каковы результаты?
16. anig99 2829 21.07.10 07:56 Сейчас в теме
(15) так как знания мои малы - прибегаю к шаманству (: Уже по результатам отключения можно сделать предположение. Автообновление статистики вещь хорошая, но при определенных условиях статистика может формироваться неверная, что приводит к резкому увеличению времени записи в регистр. А чем чаще обновлять статистику - тем больше вероятность, что это произойдет.
Сейчас периодичность обновления статистики - 3 часа. Полет нормальный.
17. idef 22.07.10 18:48 Сейчас в теме
(16) А можно текст задания, который обновляет статистику на всеобщее рассмотрение?
18. anig99 2829 22.07.10 22:59 Сейчас в теме
(17) если я правильно все понял, то после перестройки индексов статистики обновляется в любом случае. Поэтому использую скрипт, который идет последний в статье. На данный момент перешел на исполнение этого скрипта раз в сутки + 1-2 раза в день вручную, если начинаются затыки.
19. idef 23.07.10 12:55 Сейчас в теме
(18) Однозначно после ALTER INDEX статистика будет обновлена, но только если включено автообновление, а оно у вас похоже включено.
А какие размеры имеют индексы и таблицы и сколько времени это занимает?
Какая утилизация ресурсов?
Я это к тому, что может допустимый вариант решения: ночью реиндексация, а в течении дня обновление статистики несколько раз.
10. anig99 2829 13.07.10 08:41 Сейчас в теме
(8) Пока я вижу практический результат от реиндексации, обновления статистики и очистки кэша - устранения провала в производительности. Может попробовать только обновление статистики?

По дискам - tempdb, log и сама база данных разнесены на физически разные диски...
Думаете проблема может быть во фрагментации? На диске с базой ничего другого нет.
20. MICK77 12 13.10.11 12:12 Сейчас в теме
уже проскакивало :
"общее
- Обновление статистики - каждые 2 часа
- DBCC FREEPROCCACHE - каждые 2 часа"

только вот общее - это для всех баз включая системные или только пользовательские?
21. anig99 2829 13.10.11 21:37 Сейчас в теме
(20) всю статистику обновлять - это долго. очистку кэша - можно. Перестраивать несколько индексов и обновлять по ним статистику с очисткой кэша - вот всё, что нужно. У меня это происходит сейчас 3 раза в день. Занимает меньше 2 минут - результат поразительный.
На другой базе иногда вручную делаю очистку кэша. Для чего? У меня есть проверка, которая делате много-много мелких запросов. Иногда один этот запрос начинает выполнятся больше секунды - запрос должен выполнится больше сотни тысяч раз. Такая производительность не устраивает. Очистка кэша (иногда не с первого раза) снижает время выполнения до приемлемых 0,08-0,04 сек в зависимости от близости к текущей дате по времени.
22. vis_tmp 31 08.02.17 09:36 Сейчас в теме
А для SQL 2008 можно применять без изменений?
Оставьте свое сообщение

См. также

Редактор объекта (Infostart Toolkit)

Инструменты администратора БД Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Статья об инструменте Редактор объекта в продукте Infostart Toolkit. Изменение скрытых реквизитов, исследование объекта, восстановление битой ссылки.

16.05.2023    1273    Evg-Lylyk    5    

24

Метаданные (Infostart Toolkit)

Инструменты администратора БД Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Бесплатно (free)

Статья о инструменте Метаданные в продукте Infostart Toolkit. Просмотр метаданных, структуры хранения в режиме 1С: Предприятия.

16.03.2023    2481    Evg-Lylyk    12    

24

Структура хранения ИБ - обработка за 5 минут и 2 строки кода - DIY

Инструменты администратора БД Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Бесплатно (free)

Платформа "1С:Предприятие 8" не держит в секрете информацию об именах таблиц SQL (или внутренней БД для файловой). Для получения подробнейшей информации - есть штатная функция "ПолучитьСтруктуруХраненияБазыДанных". Данная обработка - лишь обертка над функцией. Думаю, нет смысла качать и тратить $m на то, что можно сделать самому за 5 минут.

10.11.2022    4909    DrAku1a    12    

44

Легкий способ регистрации библиотеки COMCNTR.DLL (для COM-соединения)

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Устали от командных строк, нюансов с разрядностью 32х/64х или ручного создания V83COMConnector в службе компонентов? Предлагаю простой способ регистрации библиотеки COMCNTR.DLL.

22.12.2020    67828    vakrikun    32    

90

Управление конфигуратором в режиме агента с помощью python

Инструменты администратора БД Архивирование (backup) DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Управление конфигуратором 1С:Предприятие в режиме агента. Опыт применения с реализацией на языке python. Результат получен с использованием интерактивной сессии оболочки через invoke_shell().

06.08.2020    3100    Alex10166    2    

20

Пошаговая инструкция по установке веб-сервера Apache и завязка с 1С

Инструменты администратора БД Администрирование веб-серверов Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Данная статья больше предназначена для начинающих администраторов, но «бывалые» тоже могут освежить свои знания и в этой статье в деталях расскажу, как устанавливать Apache и использовать веб-сервер для работы с 1С.

10.03.2020    13618    dy4amaks    10    

37

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Инструменты администратора БД Мониторинг Платформа 1С v8.3 Бесплатно (free)

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019    28058    Sloth    81    

131

Хранение файлов - как уменьшить размер базы данных

Инструменты администратора БД Платформа 1С v8.3 Россия Бесплатно (free)

Хранение файлов в базе 1С можно оптимизировать для уменьшения размера хранимых данных.

09.09.2019    11190    2tvad    19    

22

Нарушение целостности системы

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Причины возникновения ошибки "Обнаружено нарушение целостности системы" и способы ее устранения.

07.09.2019    61589    Rain88    28    

114

Еще раз про comconnector

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Подключение через com базам с разными версиями платформ ОДНОВРЕМЕННО.

19.08.2019    7994    2michael    15    

21

Ошибка при вызове конструктора (COMОбъект) на 32 и 64 битных системах

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Иногда при установке платформы 1С не происходит регистрация файла comcntr.dll, в результате чего становится недоступна работа через COMСоединение. В этой статье расскажу, как решить эту проблему.

15.08.2019    32610    lisrws    16    

21

Почему Вы не обслуживаете итоги?

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Небольшая заметка по обслуживанию итогов. Все ли Вы делаете правильно?

04.07.2019    33354    Infostart    36    

120

Опыт обновления до 8.3.14 - лицензии и утилита ring

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

На выходных было скучно, поэтому решили обновить 1с до 8.3.14.1694. С лицензиями пришлось немного повозиться.

29.04.2019    49759    Sander80    31    

82

Практика перехода на Linux и Postgres в небольшой компании (10 пользователей)

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Почему я решил поставить давнему клиенту Linux + Postgres вместо Windows + MS SQL? Что меня останавливало раньше?

22.04.2019    39592    starik-2005    183    

122

Переход на 64-х разрядный сервер 1С

Журнал регистрации Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Переход с 32-х разрядной версии сервера 1С на 64-х разрядную с сохранением данных журналов регистрации информационных баз, используемых в 32-х разрядной версии.

05.04.2019    37157    ids79    25    

66

Подключение к серверу лицензирования (получение лицензий с другого сервера) (+видео)

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

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

25.03.2019    48353    ellavs    75    

48

Для скромной такой компании огромный такой секрет. Сеть с 1С и веб-сервером Битрикс в облаке. Располагаемся поудобнее...

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Продолжим о поколении миллениалов. Новое явление в их среде: молча уходят из офисов и не возвращаются. Ответный ход прост: соберите офис в интернете, пусть попробуют уйти оттуда. Интересующихся прошу под кат…

25.03.2019    10946    capitan    33    

26

Скорость работы 1С: Предприятие с разными СУБД: MS SQL и с PostgreSQL

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Рассмотрим несколько вариантов работы 1С: Предприятие с различными СУБД.

20.02.2019    37701    valentinko    174    

75

Восстановление файловой базы с помощью tools 1cd

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Небольшая заметка, как удалось вылечить битую файловую базу 1С, с помощью утилиты tools 1cd.

19.02.2019    27280    rzabolotin    71    

61

Учет и контроль. Механизм управления потреблением ресурсов кластера серверов 1С. Примеры использования

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Начиная с редакции 8.3.13.х у платформы 1С появился механизм управления потреблением ресурсов кластера серверов. В свете последних новостей нужно сделать оговорку: Доступно только для лицензии КОРП. Но пока это время не наступило можно попробовать бесплатно.

15.02.2019    21486    capitan    16    

23

1С в Elastic Compute Service Alibaba Cloud. Сокровища Алибабы

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Если ты умеешь что-то делать хорошо, всегда найдется азиат, который сможет лучше © (один из самых популярных интернет мемов). Aliexpress уже стал именем нарицательным в всем мире. Но Alibaba Group это не только интернет-молл, но и сервис облачных вычислений №1 в Китае. Интересующихся прошу под кат…

08.02.2019    9383    capitan    13    

34

Debian 9.7 + PostgreSQL для 1С. Как завести с пол-оборота

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Предлагаю взять на заметку информацию по установке и настройке в формате typical, typical, done.

02.02.2019    33141    valentinko    15    

79

1С и Яндекс.Облако Compute Cloud. Вдоль и поперек

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Бороться и искать. Найти и перепрятать. Достаточно популярная поговорка во времена Союза. Вот и сейчас, те у кого сервер 1С в локальной сети мечтают вынести его в облако, а те у кого в облаке прикупить свой в локальную сеть. Тестирование Яндекс.Облако Compute Cloud для 1С Предприятие оставило у меня приятное впечатление. Возможно кто-то повторит его и внесет больше ясности в настройки виртуальных серверов, использованию API и так далее. Пока же пользуйтесь чем я послал. Интересующихся прошу под кат…

20.01.2019    21237    capitan    31    

96

Настройки PostgreSQL на Ubuntu Linux

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Прилагаю свои настройки, которые позволили мне решить проблему с производительностью.

18.01.2019    9957    w.r.    16    

29

Копирование числовых ячеек из 1С в Excel

Загрузка и выгрузка в Excel Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    44658    itriot11    27    

33

Одновременный запуск нескольких консолей администрирования сервера 1С на одном компьютере

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Если у вас зоопарк разных платформ 1С, то вам было бы полезно запустить одновременно несколько консолей администрирования сервера 1С.

27.12.2018    10646    John_d    17    

28

Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом. Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С). На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков). Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres. А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL). Если, конечно, статья придется вам по вкусу.

25.12.2018    49700    capitan    150    

210

Чем PostgreSQL может быть полезен разработчику 1С

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

20.12.2018    26813    Shmell    40    

183

Заметки про лицензии 1С

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Решил собрать шпаргалку по лицензиями 1С о разных нюансах, с которыми успел столкнуться.

15.12.2018    28256    MrWonder    24    

121

Быстрый перенос инфобаз между серверами 1С

Инструменты администратора БД Платформа 1С v8.3 Россия Бесплатно (free)

Переезжаем на новый сервер и надо было перенести 23 базы. Создавать все руками через оснастку не хотелось - пришлось пошаманить с 1CV8Reg.lst. Все взлетело, но были нюансы.

09.11.2018    19558    DonAlPatino    29    

25

Есть ли жизнь 1С в Azure на Linux?

Инструменты администратора БД Платформа 1С v8.3 Россия Бесплатно (free)

В данной статье мы рассмотрели процедуру разворачивания 1С c PostgreSQL на CentOS, размещенной в Azure. Кроме этого, мы рассмотрели вопросы быстродействия и финансовую составляющую вопроса.

07.11.2018    11380    zhogov    47    

38

Установка клиента 1С:Предприятие 8.3 на Debian / Ubuntu

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

В последние годы интерес к альтернативным ОС, прежде всего Linux, возрастает, причем не только со стороны пользователей, но и со стороны разработчиков. Фирма 1С достаточно давно развивает свою платформу для использования в среде Linux, а теперь к ней стали подтягиваться производители торгового оборудования, выпуская драйвера и для этой ОС. Поэтому использование Linux в качестве платформы для рабочего места выглядит все более привлекательно и сегодня мы обобщим свой опыт и расскажем об установке клиентской части 1С:Предприятие в среде современных выпусков Debian / Ubuntu.

15.10.2018    72415    oldcopy    88    

61

Когда 1С падает в дамп

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Мой опыт устранения проблемы, при которой вылетала платформа 1С.

11.10.2018    73176    987ww765    50    

105

Освобождение лицензий. Регламентное задание

Инструменты администратора БД Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

(Разработано для 1С:Документооборот). Доработка решает проблему недостатка лицензий при сравнительно бОльшем количестве активных пользователей. Реализуется путем наблюдения "Протокола работы пользователей" и при отсутствии активности пользователя - отключение его сеанса на сервере. У нас данная доработка включена как рег. задание в 1С:Документооборот. Убиваются все сеансы с неактивностью за последние 30 минут, запускать рег. задание можно соответственно каждые 35 минут.

14.05.2018    10836    aabogachev    32    

33