Автор Тема: Ищу помощи админа ms sql  (Прочитано 2495 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fatherice

  • Начинающий
  • *
  • Сообщений: 16
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Москва
Ищу помощи админа ms sql
« : 15 декабря 2018, 11:06:57 »
Коллеги, выручайте.
Накопился пул вопросов по конкретной продакшн базе на ms sql server (1с, но вопросы по sql).
Нужны срочные экспертные консультации и разъяснения.
Не за спасибо, разумеется.

Откликнитесь гуру или поделитесь в личку контактами.
Спасибо.

Оффлайн ADK

  • Начинающий
  • *
  • Сообщений: 19
  • Рейтинг: 5
    • Просмотр профиля
  • Откуда: НН
Ищу помощи админа ms sql
« Ответ #1 : 15 декабря 2018, 11:26:54 »
Ща тебе про постгрес расскажут  :cry: :cry: :cry:

Оффлайн IDok

  • Постоялец
  • ***
  • Сообщений: 324
  • Рейтинг: 13
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Samara
Ищу помощи админа ms sql
« Ответ #2 : 15 декабря 2018, 11:47:19 »
Ща тебе про постгрес расскажут   
а в теме с эротическими картинками можно найти тематические слайды  :idea:
не кажись. будь.

Оффлайн airdwarf

  • Постоялец
  • ***
  • Сообщений: 371
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Чесслово, нашел, гражданин начальник!
Ищу помощи админа ms sql
« Ответ #3 : 15 декабря 2018, 12:05:05 »
Чё те надо-то? Разъясняю: все вопросы по SQL в связке с 1С рулятся со стороны 1С.
Кто чувствует несвободу воли, тот душевнобольной; кто отрицает ее, тот глуп. Один я умный в белом пальто стою красивый.
Вы тут серьёзно отстали от жизни. Админство, саппорт - это уже вчерашний день. Сейчас рулят микросервисная архитектура и continuous integration. Ну еще SAAS, конечно.

Оффлайн fatherice

  • Начинающий
  • *
  • Сообщений: 16
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Москва
Ищу помощи админа ms sql
« Ответ #4 : 15 декабря 2018, 12:07:24 »
Чё те надо-то?
База 500Гб, штатные планы обслуживания не могут выполниться и за 3 дня при расслабленном сервере. Если падает или ребутается SQL, то база переходит в восстановление и делается это 100 часов примерно.
Надо понять, где проблемы.

Оффлайн airdwarf

  • Постоялец
  • ***
  • Сообщений: 371
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Чесслово, нашел, гражданин начальник!
Ищу помощи админа ms sql
« Ответ #5 : 15 декабря 2018, 12:15:40 »
штатные планы обслуживания
А что в них?

Если падает или ребутается SQL, то база переходит в восстановление и делается это 100 часов примерно
Ожидания на этом какие?


Updated: 15 December 2018, 12:18:24

Надо понять, где проблемы.
Сколько памяти, какая попадучесть в буферный кэш, сколько iops выдает диск и с какой latency?
Ну и под рабочей нагрузкой какие ожидания?
Кто чувствует несвободу воли, тот душевнобольной; кто отрицает ее, тот глуп. Один я умный в белом пальто стою красивый.
Вы тут серьёзно отстали от жизни. Админство, саппорт - это уже вчерашний день. Сейчас рулят микросервисная архитектура и continuous integration. Ну еще SAAS, конечно.

Оффлайн fatherice

  • Начинающий
  • *
  • Сообщений: 16
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Москва
Ищу помощи админа ms sql
« Ответ #6 : 15 декабря 2018, 12:21:13 »
А что в них?
Все покажу и расскажу при встрече.
В данном случае нужен специалист в этих вопросах, чтобы за вознаграждение ответить на них и показать как надо.

Оффлайн Logrim

  • Постоялец
  • ***
  • Сообщений: 410
  • Рейтинг: 6
  • Пол: Мужской
  • никомуникабельный тролль с моноклем
    • Просмотр профиля
Ищу помощи админа ms sql
« Ответ #7 : 15 декабря 2018, 13:31:40 »
fatherice, чет ты загоняешься. Хочешь прям гарантированных спецов обращайся к гилеву. http://www.gilev.ru/
Для начала я бы посмотрел очередь на диск, наличие на сервере низкоуровневых Ускорятелей инторнета и прочее.


Updated: 15 December 2018, 13:34:00

А, да, можно базу перенести на новый чистый сервак, где только винда и скуль и посмотреть ее поведение.

Судя по 100 часам регулярного простоя, "бизнесу" ваши сраные канпутеры вообще ни в хуй не уперлись.
Лишь по зловонию Их узнаешь ты их. Руки Их у тебя на горле, но ты Их не видишь, и обиталище Их как раз там, где порог, что ты охраняешь.

Оффлайн .05

  • Постоялец
  • ***
  • Сообщений: 196
  • Рейтинг: 2
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: 74-86-70-23
Ищу помощи админа ms sql
« Ответ #8 : 15 декабря 2018, 13:54:07 »
(1с, но вопросы по sql)
тогда специалист нужен по тому и другому

иначе может быть очень чревато
« Последнее редактирование: 15 декабря 2018, 14:06:52 от .05 »
Разное

Оффлайн fatherice

  • Начинающий
  • *
  • Сообщений: 16
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Москва
Ищу помощи админа ms sql
« Ответ #9 : 15 декабря 2018, 15:02:49 »
fatherice, чет ты загоняешься. Хочешь прям гарантированных спецов обращайся к гилеву. http://www.gilev.ru/
Для начала я бы посмотрел очередь на диск, наличие на сервере низкоуровневых Ускорятелей инторнета и прочее.


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


Updated: 15 December 2018, 15:03:38

тогда специалист нужен по тому и другому

иначе может быть очень чревато

Понятно, что тыкать в кнопки никто с разбегу не будет. Поэтому и нужен эксперт для обсуждения текущей ситуации и вынесения предложений.


Updated: 15 December 2018, 15:05:00

Судя по 100 часам регулярного простоя, "бизнесу" ваши сраные канпутеры вообще ни в хуй не уперлись.


Про регулярные никто и не писал. Это результат невыполненных планов за 72 часа. Повисания службы и попытки ее перезапуска.

Оффлайн Logrim

  • Постоялец
  • ***
  • Сообщений: 410
  • Рейтинг: 6
  • Пол: Мужской
  • никомуникабельный тролль с моноклем
    • Просмотр профиля
Ищу помощи админа ms sql
« Ответ #10 : 15 декабря 2018, 15:07:26 »
fatherice, не надо имитировать нагрузку. Возьми рабочую станцию на райзене, с 8 гб оперативки и посмотри, сколько будет стартовать база. Только это должна быть новая и чистая операционка.


Updated: 15 December 2018, 15:11:35

Ну и просто переустановить сервер тоже вариант. Я правда не удивлюсь, если у вас там не ссд диски и стоят касперский и какой-нибудь трукрипт для безопасности.


Updated: 15 December 2018, 15:19:21

И еще, если у вас нет мощностей, то как вы собираетесь работать, если сервер крякнет? А тесты на чем делать? Не, не нужны вашему бизнесу канпутеры.


Updated: 15 December 2018, 15:20:36

А параллелизм, к слову, какой выставлен?
« Последнее редактирование: 15 декабря 2018, 15:20:36 от Logrim »
Лишь по зловонию Их узнаешь ты их. Руки Их у тебя на горле, но ты Их не видишь, и обиталище Их как раз там, где порог, что ты охраняешь.

Оффлайн fatherice

  • Начинающий
  • *
  • Сообщений: 16
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Москва
Ищу помощи админа ms sql
« Ответ #11 : 15 декабря 2018, 15:37:04 »
fatherice, не надо имитировать нагрузку. Возьми рабочую станцию на райзене, с 8 гб оперативки и посмотри, сколько будет стартовать база. Только это должна быть новая и чистая операционка.
База, развернутая из бэкапа стартует быстро. Я не знаю как имитировать падение с восстановлением. Да и восстановление видимо зависит от того, в какой момент она упала.


Updated: 15 December 2018, 15:37:34

Ну и просто переустановить сервер тоже вариант. Я правда не удивлюсь, если у вас там не ссд диски и стоят касперский и какой-нибудь трукрипт для безопасности.
Это облако на самых быстрых ССД


Updated: 15 December 2018, 15:40:41

И еще, если у вас нет мощностей, то как вы собираетесь работать, если сервер крякнет? А тесты на чем делать? Не, не нужны вашему бизнесу канпутеры.
Еще раз. База работает нормально, проблемы в том, что ни перестроения, ни реорганизации, ни обновление статистики не делается нормально. Планы не завершаются сами почти никогда, сколько бы не выполнялись. Либо все рушится, либо сильно тормозится работа пользователей спустя несколько дней. Приходится останавливать.
Понятно одно, что база на 500Гб не должна перестраивать и реорганизовывать индексы 3 дня и более. Что-то в ней явно не так.

Оффлайн Logrim

  • Постоялец
  • ***
  • Сообщений: 410
  • Рейтинг: 6
  • Пол: Мужской
  • никомуникабельный тролль с моноклем
    • Просмотр профиля
Ищу помощи админа ms sql
« Ответ #12 : 15 декабря 2018, 16:00:26 »
fatherice, хорошо, я не прав и сервер у вас хороший, а база плохая. сделай скулем бэкап, разверни его на другом сервере, выгрузи в dtшник, загрузи обратно, посмотри разницу.


Updated: 15 December 2018, 16:01:26

не делай выгрузку на рабочей базе, потому что она у тебя нерабочая.
Лишь по зловонию Их узнаешь ты их. Руки Их у тебя на горле, но ты Их не видишь, и обиталище Их как раз там, где порог, что ты охраняешь.

Оффлайн shurutov

  • Постоялец
  • ***
  • Сообщений: 326
  • Рейтинг: 3
  • Пол: Мужской
    • mshurutov@jabber.ru
    • Просмотр профиля
  • Откуда: СССР
Ищу помощи админа ms sql
« Ответ #13 : 15 декабря 2018, 16:29:57 »
ADK, тут никого нет из ПгПро, чтобы за ПГ для 1С рассказывать. Хы.
1С - это как винда, только хужже. Потому что с винды свинтить варианты есть, а с 1С - сурово так поменьше.
С уважением,
Шурутов Михаил.

Оффлайн airdwarf

  • Постоялец
  • ***
  • Сообщений: 371
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Чесслово, нашел, гражданин начальник!
Ищу помощи админа ms sql
« Ответ #14 : 15 декабря 2018, 16:44:22 »
обращайся к гилеву. http://www.gilev.ru/

Чтобы получить рекомендации от Гилева, не нужно к нему обращаться. Достаточно умножить имеющийся объем оперативки на 10 - будет ровно та же цифра, что посоветуют у Гилева. Если ваша контора с именем или государственная - умножать нужно на 20.

Ну и эта. Нужно быть редкостным долбоебом, чтобы рекомендовать однопоточный синтетический тест для оценки производительности реальной многопользовательской системы. Так что услышать от Логрима предложение обратиться к Гилеву не удивляет: два сапога пара, хуле.


Updated: 15 December 2018, 16:50:08

Вот с этим разберешься?

Поставь частоту записи раз в 15 минут и покажи exec stats_lastwaits через час рабочей нагрузки и через час, например, ребилда индексов. По результатам можно будет о чем-то думать.
Ну и да, максдоп какой?

Спойлер для скрыто:


-- First create database [stats]
--Then use:
--USE [stats]
--GO
--[set nocount on
--go]
/*

CREATE DATABASE [stats] CONTAINMENT = NONE ON  PRIMARY
( NAME = N'stats', FILENAME = N'D:\Data\stats.mdf' , SIZE = 65536KB , MAXSIZE = UNLIMITED, FILEGROWTH = 32768KB )
 LOG ON
( NAME = N'stats_log', FILENAME = N'D:\Data\stats_log.ldf' , SIZE = 65536KB , MAXSIZE = 2048GB , FILEGROWTH = 32768KB )
GO
ALTER DATABASE [stats] SET RECOVERY SIMPLE
GO

*/



--exec [dbo].[stats_WriteWaitStats]
--GO

--exec [dbo].[stats_WriteQueryStats]
--GO

--**************************************************************

Use [stats]
GO
CREATE FUNCTION fn_GetSQLHash(@TSQL nvarchar(4000)) 
RETURNS varchar(4000) 
AS 
BEGIN 
 DECLARE @TmpTableName nvarchar(4000) 
 DECLARE @i int 
 
 SET @TmpTableName = '' 
 
 IF (CHARINDEX('#', @TSQL) > 0) 
 BEGIN 
  SET @TmpTableName = SUBSTRING(@TSQL, CHARINDEX('#', @TSQL), 4000) 
  IF (CHARINDEX(' ', @TmpTableName) > 0) 
  BEGIN
    SET @TmpTableName = SUBSTRING(@TmpTableName, 1, CHARINDEX(' ', @TmpTableName) - 1) 
  END
 END 
 
 SET @TSQL = REPLACE ( @TSQL , @TmpTableName , 'TEMPTABLE') 
 SET @TSQL = REPLACE ( @TSQL , ' ' , '') 
 SET @TSQL = REPLACE ( @TSQL , ' ' , '') 
 SET @TSQL = REPLACE ( @TSQL , ' ' , '') 
 SET @TSQL = REPLACE ( @TSQL , 'execsp_executesqlN''' , '') 
 SET @TSQL = REPLACE ( @TSQL , CHAR(10) , '') 
 
 IF (CHARINDEX(''',N''', @TSQL) > 0) 
  SET @TSQL = SUBSTRING(@TSQL, 1, CHARINDEX(''',N''', @TSQL) - 1) 
 
 SET @i = 1 
   
 WHILE @i < 30 
 BEGIN 
  SET @TSQL = REPLACE ( @TSQL , '@P' + CAST(@i AS varchar), '') 
  SET @i = @i + 1 
 END 
 
 SET @TSQL = REPLACE ( @TSQL , '{', '') 
 SET @TSQL = REPLACE ( @TSQL , '}', '') 
 SET @TSQL = REPLACE ( @TSQL , '''', '') 
 SET @TSQL = REPLACE ( @TSQL , '"', '') 
 SET @TSQL = REPLACE ( @TSQL , '.', '') 
 SET @TSQL = REPLACE ( @TSQL , ',', '') 
 SET @TSQL = REPLACE ( @TSQL , ';', '') 
 SET @TSQL = REPLACE ( @TSQL , ':', '') 
 SET @TSQL = REPLACE ( @TSQL , '@', '') 
 SET @TSQL = REPLACE ( @TSQL , '?', '') 
 SET @TSQL = REPLACE ( @TSQL , '=', '') 
 SET @TSQL = UPPER(@TSQL) 
 SET @TSQL = LEFT(@TSQL, 4000) 
 
 RETURN(@TSQL); 
 
END

GO
CREATE PROCEDURE stats_WriteWaitStats
AS
BEGIN

IF NOT (EXISTS (SELECT *
                 FROM INFORMATION_SCHEMA.TABLES
                 WHERE TABLE_SCHEMA = 'dbo'
                 AND  TABLE_NAME = 'wait_stats'))
BEGIN -- create table

Create table [dbo].[wait_stats](
[fix_date] datetime,
[wait_type] nvarchar(60),
[wait_sec] numeric(26, 6) NULL,
[resource_sec] [numeric](26, 6) NULL,
[signal_sec] [numeric](26, 6) NULL,
[wait_count] [bigint] NULL
)

CREATE CLUSTERED INDEX [wait_stats_by_date_type] ON [dbo].[wait_stats]
(
[fix_date] ASC,
[wait_type] ASC
)WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]

END -- create table

--******************************************************************* save actual stats

Insert into [wait_stats] 
SELECT
        GETDATE() AS fix_date,
[wait_type] as wait_type,
        [wait_time_ms] / 1000.0 AS [wait_sec],
        ([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [resource_sec],
        [signal_wait_time_ms] / 1000.0 AS [signal_sec],
        [waiting_tasks_count] AS [wait_count]
    FROM sys.dm_os_wait_stats
    WHERE [wait_type] NOT IN (
        N'BROKER_EVENTHANDLER',         N'BROKER_RECEIVE_WAITFOR',
        N'BROKER_TASK_STOP',            N'BROKER_TO_FLUSH',
        N'BROKER_TRANSMITTER',          N'CHECKPOINT_QUEUE',
        N'CHKPT',                       N'CLR_AUTO_EVENT',
        N'CLR_MANUAL_EVENT',            N'CLR_SEMAPHORE',
        N'DBMIRROR_DBM_EVENT',          N'DBMIRROR_EVENTS_QUEUE',
        N'DBMIRROR_WORKER_QUEUE',       N'DBMIRRORING_CMD',
        N'DIRTY_PAGE_POLL',             N'DISPATCHER_QUEUE_SEMAPHORE',
        N'EXECSYNC',                    N'FSAGENT',
        N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
        N'HADR_CLUSAPI_CALL',           N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
        N'HADR_LOGCAPTURE_WAIT',        N'HADR_NOTIFICATION_DEQUEUE',
        N'HADR_TIMER_TASK',             N'HADR_WORK_QUEUE',
        N'KSOURCE_WAKEUP',              N'LAZYWRITER_SLEEP',
        N'LOGMGR_QUEUE',                N'ONDEMAND_TASK_QUEUE',
        N'PWAIT_ALL_COMPONENTS_INITIALIZED',
        N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
        N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
        N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',
        N'SERVER_IDLE_CHECK',           N'SLEEP_BPOOL_FLUSH',
        N'SLEEP_DBSTARTUP',             N'SLEEP_DCOMSTARTUP',
        N'SLEEP_MASTERDBREADY',         N'SLEEP_MASTERMDREADY',
        N'SLEEP_MASTERUPGRADED',        N'SLEEP_MSDBSTARTUP',
        N'SLEEP_SYSTEMTASK',            N'SLEEP_TASK',
        N'SLEEP_TEMPDBSTARTUP',         N'SNI_HTTP_ACCEPT',
        N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',
        N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
        N'SQLTRACE_WAIT_ENTRIES',       N'WAIT_FOR_RESULTS',
        N'WAITFOR',                     N'WAITFOR_TASKSHUTDOWN',
        N'WAIT_XTP_HOST_WAIT',          N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
        N'WAIT_XTP_CKPT_CLOSE',         N'XE_DISPATCHER_JOIN',
        N'XE_DISPATCHER_WAIT',          N'XE_TIMER_EVENT')

DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR)

END -- end procedure stats_WriteWaitStats
--******************************************************************
GO
CREATE PROCEDURE stats_WriteQueryStats
AS
BEGIN

IF NOT (EXISTS (SELECT *
                 FROM INFORMATION_SCHEMA.TABLES
                 WHERE TABLE_SCHEMA = 'dbo'
                 AND  TABLE_NAME = 'query_stats'))
BEGIN -- create table

Create table [dbo].[query_stats](
[last_update] datetime,
[query_text] [nvarchar](max) NULL,
[query_plan] [xml] NULL,
[creation_time] [datetime] NULL,
[execution_count] [bigint] NOT NULL,
[last_execution_time] [datetime] NULL,
[total_worker_time] [bigint] NOT NULL,
[total_logical_reads] [bigint] NOT NULL,
[total_logical_writes] [bigint] NOT NULL,
[total_physical_reads] [bigint] NOT NULL,
HashSQL VARCHAR(4000) NULL,
HashSQLMD5 varbinary(32) NULL
)
END -- create table

IF OBJECT_ID('tempdb..#ttab1') IS NOT NULL
DROP TABLE #ttab1


Select TOP 100
GETDATE() as last_update,
SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.TEXT)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2)+1) AS query_text,
qp.query_plan,
qs.creation_time,
qs.execution_count,
qs.last_execution_time,
qs.total_worker_time,
qs.total_logical_reads,
qs.total_logical_writes,
qs.total_physical_reads
into #ttab1
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp


ALTER TABLE #ttab1 ADD HashSQL VARCHAR(4000) NULL, HashSQLMD5 varbinary(32) NULL
UPDATE  #ttab1 SET [HashSQL] = dbo.fn_GetSQLHash(SUBSTRING([query_text], 1, 4000))
UPDATE  #ttab1 SET [HashSQLMD5] = HashBytes('MD5', HashSQL)

insert into [dbo].[query_stats] select * from #ttab1
DROP TABLE #ttab1

DBCC FREEPROCCACHE

END
-- *************************************** End procedure stats_WriteQueryStats
GO
CREATE PROCEDURE stats_CountHashOnTable @tableName Nvarchar(100)
AS
BEGIN
SET NOCOUNT ON;
Declare @sql varchar(max)
set @sql = 'ALTER TABLE [stats].[dbo].['+@tableName+'] ADD HashSQL VARCHAR(4000) NULL, HashSQLMD5 varbinary(32) NULL'
exec sp_sqlexec @sql
set @sql = 'UPDATE [stats].[dbo].['+@tableName+'] SET [HashSQL] = dbo.fn_GetSQLHash(SUBSTRING([TextData], 1, 4000))'
exec sp_sqlexec @sql
set @sql = 'UPDATE  [stats].[dbo].['+@tableName+'] SET [HashSQLMD5] = HashBytes(''MD5'', HashSQL)'
exec sp_sqlexec @sql
END
GO

CREATE PROCEDURE stats_lastwaits
AS
BEGIN
SET NOCOUNT ON;

SELECT top 30 [wait_type] as typewait
      ,SUM([wait_sec]) as totalwait
      ,SUM([resource_sec]) as res
      ,SUM([signal_sec]) as sig
      ,SUM([wait_count]) as countwait
   ,CASE WHEN SUM(wait_count) = 0 THEN 0 ELSE SUM([wait_sec])/SUM(wait_count) END as midwait
 
  FROM [stats].[dbo].[wait_stats]
  where fix_date >  DATEADD(hour, -1, GETDATE())           
  group by [wait_type]
 
  order by totalwait desc
END

GO


exec [dbo].[stats_WriteWaitStats]
GO
-- exec [dbo].[stats_WriteQueryStats]
-- GO

USE [msdb]
GO

BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0

IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'stats_writer',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'waits_writer',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'exec [dbo].[stats_WriteWaitStats]
GO',
@database_name=N'stats',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'hourly',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=8,
@freq_subday_interval=1,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20181126,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO






Updated: 15 December 2018, 16:53:28

Это облако
Чье облако, сколько iops, какова latency?

50% IAAS-провайдеров - пидарасы. С остальными 50% я еще не сталкивался.


Updated: 15 December 2018, 16:58:19

Все покажу и расскажу при встрече.

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


Updated: 15 December 2018, 17:04:30

ни перестроения, ни реорганизации
Эффект от них на SSD сильно преувеличен.

обновление статистики
А есть проблемы с ее актуальностью?

Ну и эта. В 500Гб у вас может быть 450Гб регистра сведений ВерсииОбъектов. Или итоги раздутые до неимоверных размеров. Что, кстати, более вероятно исходя из затягивания процедуры восстановления.


Updated: 15 December 2018, 17:12:04

Надо чтобы опытный взгляд посмотрел на предмет явных "болячек".

Вообще слышать от неспециалиста указание, что именно нужно посмотреть специалисту, несколько странно.
« Последнее редактирование: 15 декабря 2018, 17:12:04 от airdwarf »
Кто чувствует несвободу воли, тот душевнобольной; кто отрицает ее, тот глуп. Один я умный в белом пальто стою красивый.
Вы тут серьёзно отстали от жизни. Админство, саппорт - это уже вчерашний день. Сейчас рулят микросервисная архитектура и continuous integration. Ну еще SAAS, конечно.