Для 1С: не тратьте ваше время. Ответа в видео нет и быть не может. Злодей всего один - пользователь SA
@yurekkovalskiy43482 ай бұрын
Добрый день, подскажите пожалуйста, у меня папка с файлами tempdb лежит на диске Е. Но этот раздел мне нужно форматнуть. Если я скопирую данные на другой диск, отформатирую раздел и верну файлы с папками в том располажении как было, не будет сбоя со стороны SQL сервера?
@KittenYour3 ай бұрын
Классные видео.
@kennykramolnik62983 ай бұрын
Долго искал я видео более менее понятное. +
@keepermodekeepermode18033 ай бұрын
Спасибо! Где взять скрипт AOn (12-я минута ролика)?
@datainternalsru60253 ай бұрын
День добрый! А скрипт генерирует графика, если я правильно понял, о каком именно скрипте идет речь. Я обычно стараюсь пройти все рутинные моменты через графику, а потом на конечном этапе найти и нажать кнопку генерации скрипта. Так в процессе исполнения можно увидеть сразу ошибки и вообще, видно, что именно собирается исполнить SQL Server. Как говорится, доверяй, но проверяй.
@1boxingclub3786 ай бұрын
Интересуют еще параметры роста- вы про них ничего указали
@datainternalsru60256 ай бұрын
@@1boxingclub378 про рост, да, наверное стоило. Вообще, autogrowth сам по себе процесс не очень удачный и может оказать негативное влияние. Тут не так давно нарвались на интересное ожидание, связанное с ростом лога и я могу сказать, что не зря процесс autogrowth считается нежелательных для высокопроизводительных БД.
@1boxingclub3786 ай бұрын
@@datainternalsru6025 А вы можете дать рекомендации относительно параметров роста? Например у меня сервер с 1 физическим процессором 3 логических. У нас сейчас спор идет с коллегами относительно настройки файлов tempdb. Я топлю что надо оставить 8 файликов которые были до меня но изменить параметры роста. А коллеги говорят что надо ставить к-во файлов равное количеству процессоров. Что вы можете сказать по своему опыту? Система сама по себе имеет среднюю нагрузку
@user-jn5tp4nt7f9 ай бұрын
Фрагментация сказывается только когда нужно прочитать большие последовательные блоки данных. А если к таблице только обращения, что бы прочитать одну строку данных то плевать на фрагментацию
@yurvasya9 ай бұрын
Спасибо, очень познавательно
@toolsworldsentry95359 ай бұрын
Не надо извиняться за долгое видео, видео очень полезное! Жаль, что перестали выпускать ещё обучающие видео, вас слушать одно удовольствие.
@datainternalsru60259 ай бұрын
Спасибо за отзыв. Много мыслей и разных наработок за это время, и очень мало времени, к сожалению. Канал был всегда для души, поэтому надо "поймать волну" :)
@toolsworldsentry95359 ай бұрын
@@datainternalsru6025 накидал ещё в копилку) что интересного от вас хотелось бы послушать: партициорование, колоночные индексы, анализ и диагностика always on, всякие фишки и плюшки по ней как раз, очень интересного было бы послушать про новинки в 2019 и 2022 сервере, про диагностику интересного было бы посмотреть. Правда канал для души, смотрится очень интересно не скучно.
@unknown7stranger10 ай бұрын
много воды: не нужные действия, не нужные прверки. Вычленить из этого потока сознаяния, что-нить нужное-не реально. Автор сам не знает как это делается. ]Потратил время в пустую.
@ДмитрийПарчинов11 ай бұрын
Спасибо большое за видео. Вопрос только зачем AlwaysOn сюда впихнули? Разве нельзя было просто на Win2016 развернуть кластеризованный экземпляр SQL 2017 и с мигрировать на него с 2012. Крюк на AlwaysON не понятен
@datainternalsru602511 ай бұрын
Добрый день! Спасибо за просмотр. Насколько я помню этот кейс, задача была от заказчика переехать на повышенную версию sql server, с минимальным временем простоя. Ну, а в процессе разбирательства делал стенд, а потом решил сделать и вижео инструкцию, мало ли кому-то пригодится. Что касается миграции, то там немного вариантов, если надо переехать за пару минут. Один из путей - это сделать через зеркало, или alwayson, которое по своей сути зеркало тоже :)
@You2Ber42 Жыл бұрын
Что то не сходится эксперимент. 15:00 Первый запуск (чтение с диска) Low/Hi/Delta 341/445/104 350/400/50 Данные из пула Low/Hi/Delta 273/358/83 По сути во втором случае вообще чтений с диска не было, и поэтому 2й и третий эксперимент не применимы, однако разница все равно сравнимая. т.е. мы вообще не обращаемся к дискам и при этом разница такая же. Если бы все это было на HDD то разница там была бы в разы больше, в этом и суть. Если на HDD фрагментация жизненно необходима так как полностью можно было положить диски то на современных NVME SSD существенно нагрузку фрагментация не добавляет. Первый тест с заполнением страниц на 100% вообще смысла не имеет, так как любая вставка в эту таблицу приведет к взрывному росту фрагментации. Второй тест с 68% заполнением ближе к реальности. Т.е. тот факт что страниц при фрагментации больше и они занимают больше место в пуле тоже можно не учитывать, так как при указании фил фактора точно так же будет много страниц и они точно так же будут занимать место в пуле. Так же у SATA SSD в целом есть целый комплекс проблем с задержками из за необходимости эмулировать SATA протокол я бы не стал их рассматривать их серьезно. Хотя опять же судя по эксперименту без очистки кэша диски там вообще не причем, так как разница в 100мс сохраняется даже при чтении из буфера. Конечно совсем убирать дефрагментацию все равно не стоит, но критичность этой операции сильно понижается, и можно делать её значительно реже без особых последствий. Мы на продуктовой базе в 1.5 Tb (intel optane) отключали дефрагментацию, в течении недели база работала без обслуживания, по мониторингу каких то значительных отклонений не было, потом оставили раз в 2 недели. Конечно понимаю что видео 18 года, но по сути вопрос актуальный все еще. За видео спасибо, подчерпнул удобные инструменты для себя
@viktornosurname868 Жыл бұрын
Спасибо, что без воды. Весь ютуб завален видео на 1,5 часа которые часто не содержат почти ничего..
@antonanashkin84 Жыл бұрын
Александр, доброго времени суток! А как найти процесс\процессы, которые раздувают не файлы данных в TempDB, а файл логов TempDB? Просто периодически сталкиваемся с переполнением именно файла логов...
@datainternalsru6025 Жыл бұрын
Антон, приветствую! Сорри, забегался, упустил комментарий. Я не знаю какого-то магического скрипта, который бы преподнес эту информацию "на блюдичке", поэтому смотрю через DBCC OPENTRAN :(( learn.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-opentran-transact-sql?view=sql-server-ver16
@datainternalsru6025 Жыл бұрын
Антон, приветствую! а вот такой нашелся скрипт... попробуйте, нашел в закромах только что:) SELECT tst.[session_id] , s.[login_name] AS [Login Name] , DB_NAME (tdt.database_id) AS [Database] , tdt.[database_transaction_begin_time] AS [Begin Time] , tdt.[database_transaction_log_record_count] AS [Log Records] , tdt.[database_transaction_log_bytes_used] AS [Log Bytes Used] , tdt.[database_transaction_log_bytes_reserved] AS [Log Bytes Rsvd] , SUBSTRING(st.text, (r.statement_start_offset/2)+1, ((CASE r.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE r.statement_end_offset END - r.statement_start_offset)/2) + 1) AS statement_text , st.[text] AS [Last T-SQL Text] , qp.[query_plan] AS [Last Plan] FROM sys.dm_tran_database_transactions tdt JOIN sys.dm_tran_session_transactions tst ON tst.[transaction_id] = tdt.[transaction_id] JOIN sys.[dm_exec_sessions] s ON s.[session_id] = tst.[session_id] JOIN sys.dm_exec_connections c ON c.[session_id] = tst.[session_id] LEFT OUTER JOIN sys.dm_exec_requests r ON r.[session_id] = tst.[session_id] CROSS APPLY sys.dm_exec_sql_text (c.[most_recent_sql_handle]) AS st OUTER APPLY sys.dm_exec_query_plan (r.[plan_handle]) AS qp WHERE DB_NAME (tdt.database_id) = 'tempdb' ORDER BY [Log Bytes Used] DESC GO
@wddingo Жыл бұрын
а без shrink`а инсёрты попадут сразу в БД при том, что бэкап продолжается?
@datainternalsru6025 Жыл бұрын
Добрый день! Да, операции модификации данных не должны испытывать проблем с REDO из-за бэкапа. Суть проблемы в том, что данные попадают в лог файл на вторичном узле, но REDO поток, "накатывающий" эти данные на database file заблокирован. В результате данные как бы есть (в транзакциооном лог файле) и одновременно ещё как бы и нет (в файле баз данных) :) На самом деле, заблокировать REDO можно не только бэкапом+шринк, есть ещё различные ситуации, когда REDO блокируется. Занятно, что вы спросили, я как раз сейчас разбираюсь в одной интересной ситуации, когда AG группа перекатилась, позеленела, а вот БД внутри неё не смогли почему-то разобраться кто из них primary, а кто secondary... :)))
@wddingo Жыл бұрын
@@datainternalsru6025 Доброго дня! Про то, что данные в логе, а редо-поток заблокирован я понял. Но я считал, что раз делается бэкап, то данные меняться не должны, а потому простой инсерт тоже не должен был дойти до БД, а остаться в логе до завершения бэкапа. Иначе может получиться, что данные у нас актуальные, а бэкап нет. Но тогда и селекты должны блокироваться, либо отрабатывать и после модифицироваться данными из лога, раз идет процесс бэкапа. Успехов вашим БД разобраться, кто из них главный =)
@DIEsel27031992 Жыл бұрын
Очень наглядно и познавательно. Спасибо большое!
@Ренат-ц8ж2 жыл бұрын
Спасибо, очень познавательно.
@datainternalsru60252 жыл бұрын
пожалуйста! Тема памяти, кажется, бесконечна и не переставает быть актуальной. Уже sql2022 вышел, а настройки памяти все еще переодически являются проблемами для серверов, хотя казалось бы, их же там 3-4 штуки, где же можно запутаться? Ан-нет, легко:)
@Ренат-ц8ж2 жыл бұрын
Спасибо!
@datainternalsru60252 жыл бұрын
всегда рад помочь!
@ЕвгенийЮрченко-ш6ь2 жыл бұрын
похожи на Мясникова 😆
@datainternalsru60252 жыл бұрын
*голосом кота матроскина а я и на гита-а-аре тоже немного умею :)
@ЕвгенийЛунев-е1н2 жыл бұрын
Александр, приветствую! А разве сортировка не должна по возможности сначала выполняться в оперативной памяти и только вследствие нехватки таковой перетекать в TempDB?
@datainternalsru60252 жыл бұрын
Евгений, приветсвую! Простите за долгий ответ, начал отвечать и отвлекли и.... :( Смотрите, там очень интересная история, я тоже не могу понять, почему он лезет в tempDB, начал смореть объем выделяемой Grant memory и моему удивлению не было предела... что-то в районе пары десятков мегабайт(!), больше не выделено было, сколько я не пытался его как-то ... заставить более менее адекватно выдавать память, у меня ничего не вышло. Т.е. получается изначально выделяется мало памяти, ее автоматом не хватает и он почти сразу начинает сливаться в БД tempDB. Мне остается только догадываться, почему он так себя ведет...
@rotvx2 жыл бұрын
Хорошие видео. Если можно - очень нужен понятный урок по репликациям.
@datainternalsru60252 жыл бұрын
Валерий, спасибо! К сожалению, репликация не самый мой сильный "конек", мало я с ней работал, извините.
@Ренат-ц8ж2 жыл бұрын
Здравствуйте, извиняюсь если немнго не по теме, сталкивались ли вы с тем что события query_post_execution_showplan и query_post_execution_plan_profile не генерируют план для некоторых запросов?
@datainternalsru60252 жыл бұрын
Добрый день! Мне кажется, что я такое видел, но мне везло и нужные мне планы всегда ловились без проблем особых. Вот интересная статья, где собран список причин, по которым могут быть проблемы при решении проблем с планами запросов. www.dnsstuff.com/sql-server-query-plan-was-not-collected А какой тип кода вы трассируете и не видите плана? Хранимка, динамический sql,... ?
@datainternalsru60252 жыл бұрын
А само событие он при этом генерирует? И в нем xml отсутствует или же он и события xevent-ов не выдаёт?
@Ренат-ц8ж2 жыл бұрын
@@datainternalsru6025изначально проблема обнаружилась c parameterized query внутри хранимки. Но также повторяется и с ad hoc запросом полученным из него. Упрощал проблемный запрос, но не смог выявить прямой зависимости ни от числа джойнов, ни от набора результирующих полей, получателя данных, хэша текста запроса итд. При некоторых условиях даже изменение текста комментария могло повлиять на генерацию события. События query_post_execution_showplan и query_post_execution_plan_profile не генерируются, но например генерируется query_thread_profile. Из особенностей в запросе большое число результирующих полей (>100) и число джойнов (>20) но сам запрос простой, нет сложной логики.
@Ренат-ц8ж2 жыл бұрын
@@datainternalsru6025 Спасибо большое за ссылку, похоже все таки по причине "optimize for ad hoc workloads"
@datainternalsru60252 жыл бұрын
@@Ренат-ц8ж, отключили и генерируется сейчас? Вообще, странно, я всегда думал, что post_execution_showplan является фактом выполнения запроса и отображение реального плана. Любая параметризация simple/forced - это оптимизация компиляционных издержек и памяти, opt. for adhoc параметр не кеширует первое исполнение adhoc запроса, но как это может влиять на появление actual plan, не понимаю, если честно. Просто если взять adhoc и выполнить и включить отображение актуального плана - вы его получите, как он там кешироваться будет или нет, это вас уже не волнует, план вы получите. Думаю, как и событие xevent тоже, должны получить, процесс кеширования по-идее тут не должен влиять. Вообще, интересно. А какая версия у вас sql server?
@ЕвгенийЛунев-е1н2 жыл бұрын
Очень полезное видео! Спасибо, Александр!
@datainternalsru60252 жыл бұрын
Пожалуйста! Я рад, что материал был вам полезен!
@Digr19792 жыл бұрын
Отличная презентация. Можно несколько раз смотреть с пользой для себя и просто для души.
@vladimirterentev30852 жыл бұрын
Спасибо, полезное видео, а продолжения нет?
@Денис-в7з1е3 жыл бұрын
Очень жалко что такие видео не набирают огромной аудитории, потому что это контент ох***нный)
@marshev62773 жыл бұрын
Спасибо за интенсив. Жаль только что ссылки не открываются ...
@viktorbekker12323 жыл бұрын
Александр, приветствую! Подскажите пож-та, где посмотреть имплементацию или детальное описание алгоритма реорганизации. Основной вопрос: насколько хорошо реорганизация устраняет внешнюю фрагментацию?
@gladchenko633 жыл бұрын
Простите, что поднимаю тему через три года с публикации:) Бесспорно, фрагментация влияла, влияет и будет влиять на производительность. Мой комментарий не в этой плоскости. Натан так подобрал условия теста, чтобы утрировать проблематику. В реальности цифры и поведение движка могут существенно отличаться. Если у вас будет другая средняя длина строки, другой процент фрагментации (дефрагментированный индекс не будет таким вечно), СХД будет активнее кешировать, буферный пул не будет только для теста использоваться, блокировки будут, процессоры тоже будут не только дефрагментированные индексы на конвейерах обслуживать, MAXDOP будет иной, и ещё много чего можно придумать... Тогда результаты теста будут как первый запуск на 14-й минуте :) Не ведитесь на сенсации с сайта SQLSkils, они умеют красиво, даже броско подать материал. Из всей этой статьи блога Натана надо запомнить одно, что дефрагментация полезна. Но с появлением SSD мир стал другим. Скорость доступа к физическому носителю и обслуживания запросов ввода-вывода выросли многократно. Зачастую разницей от дефрагментации можно пренебречь. Отказ от дефрагментации не станет катастрофой. Его можно и не заметить. А иногда дефрагментация становиться явным злом, например, когда у вас с ней не справляется REDO, или когда она тупо убивает диски. Нельзя бездумно от неё отказываться, но и дефрагментировать бездумно тоже не стоит. К видео же особых претензий нет, кроме того, что как-то незаметно сравнивать стали фрагментированную таблицу и таблицу с филфактором не по умолчанию. Также стоило бы указать источники, которые призывают совсем отказаться от дефрагментации - я бы тоже "кинул в них камень". Спасибо автору видео.
@datainternalsru60253 жыл бұрын
Александр, приветствую! Спасибо за ваш комментарий! Полностью согласен с вами, что в различных условия системы могут себя вести абсолютно не как оно "должно быть в теории". Любая система от 1Тб и более требует индивидуального подхода к обслуживанию и запуск обслуживания "в лоб" приведет к тому, что обслуживание просто выключат из-за проблем с ним :) Про ребилд на AlwaysOn - это вообще можно долго истории рассказывать, не зря ребилд иногда замедляют MAXDOP-ом 1, чтобы не создавал очередей на первичке или проблем для REDO на вторичке.
@rkDBA3 жыл бұрын
Полезный материал. Хотелось бы узнать о расшифровке Wait Resourse о котором упоминается на отметке 50:09.
@datainternalsru60253 жыл бұрын
Константин, приветсвую! Да, это можно , например, 'KEY: 5:72057598157127680 (92d211c2a131)' KEY - это указательно на факт, что мы лочим ключ индекса 5 - это номер базы данных 72057598157127680 - это partition_id (см select * from sys.partitions where partition_id = ...) 92d211c2a131 - указатель на значение, которые блокируется. Есть вот такой скрипт, к сожалению, я не знаю кто его автор, поэтому формирую как есть (если подскажете автора, обязательно укажу авторство) declare @keyValue varchar(256); SET @keyValue = 'KEY: 5:72057598157127680 (92d211c2a131)' --Output from deadlock graph: process-list/process[waitresource] -- CHANGE HERE ! ------------------------------------------------------------------------ --Should not have to change anything below this line: declare @lockres nvarchar(255), @hobbitID bigint, @dbid int, @databaseName sysname; --............................................. --PARSE @keyValue parts: SELECT @dbid = LTRIM(SUBSTRING(@keyValue, CHARINDEX(':', @keyValue) + 1, CHARINDEX(':', @keyValue, CHARINDEX(':', @keyValue) + 1) - (CHARINDEX(':', @keyValue) + 1) )); SELECT @hobbitID = convert(bigint, RTRIM(SUBSTRING(@keyValue, CHARINDEX(':', @keyValue, CHARINDEX(':', @keyValue) + 1) + 1, CHARINDEX('(', @keyValue) - CHARINDEX(':', @keyValue, CHARINDEX(':', @keyValue) + 1) - 1))); SELECT @lockRes = RTRIM(SUBSTRING(@keyValue, CHARINDEX('(', @keyValue) + 0, CHARINDEX(')', @keyValue) - CHARINDEX('(', @keyValue) + 1)); --............................................. --Validate DB name prior to running dynamic SQL SELECT @databaseName = db_name(@dbid); IF not exists(select * from sys.databases d where d.name = @databaseName) BEGIN RAISERROR(N'Database %s was not found.', 16, 1, @databaseName); RETURN; END declare @objectName sysname, @indexName sysname, @schemaName sysname; declare @ObjectLookupSQL as nvarchar(max) = ' SELECT @objectName = o.name, @indexName = i.name, @schemaName = OBJECT_SCHEMA_NAME(p.object_id, @dbid) FROM ' + quotename(@databaseName) + '.sys.partitions p JOIN ' + quotename(@databaseName) + '.sys.indexes i ON p.index_id = i.index_id AND p.[object_id] = i.[object_id] JOIN ' + quotename(@databaseName)+ '.sys.objects o on o.object_id = i.object_id WHERE hobt_id = @hobbitID' ; --print @ObjectLookupSQL --Get object and index names exec sp_executesql @ObjectLookupSQL ,N'@dbid int, @hobbitID bigint, @objectName sysname OUTPUT, @indexName sysname OUTPUT, @schemaName sysname OUTPUT' ,@dbid = @dbid ,@hobbitID = @hobbitID ,@objectName = @objectName output ,@indexName = @indexName output ,@schemaName = @schemaName output ; DECLARE @fullObjectName nvarchar(512) = quotename(@databaseName) + '.' + quotename(@schemaName) + '.' + quotename(@objectName); SELECT fullObjectName = @fullObjectName, lockIndex = @indexName, lockRes_key = @lockres, hobt_id = @hobbitID, waitresource_keyValue = @keyValue; --Validate object name prior to running dynamic SQL IF OBJECT_iD( @fullObjectName) IS NULL BEGIN RAISERROR(N'The object "%s" was not found.',16,1,@fullObjectName); RETURN; END --Get the row that was blocked --NOTE: we use the NOLOCK hint to avoid locking the table when searching by %%lockres%%, which might generate table scans. DECLARE @finalResult nvarchar(max) = N'SELECT lockResKey = %%lockres%% ,* FROM ' + @fullObjectName + ISNULL(' WITH(NOLOCK INDEX(' + QUOTENAME(@indexName) + ')) ', '') + ' WHERE %%lockres%% = @lockres' ; --print @finalresult EXEC sp_executesql @finalResult, N'@lockres nvarchar(255)', @lockres = @lockres;
@MrEdo9993 жыл бұрын
А как узнать какая сессия съела место в логе tempdb?
@datainternalsru60253 жыл бұрын
@MrEdo999, добрый день! Попробуйте вот такой скрипт SELECT tst.[session_id] , s.[login_name] AS [Login Name] , DB_NAME (tdt.database_id) AS [Database] , tdt.[database_transaction_begin_time] AS [Begin Time] , tdt.[database_transaction_log_record_count] AS [Log Records] , tdt.[database_transaction_log_bytes_used] AS [Log Bytes Used] , tdt.[database_transaction_log_bytes_reserved] AS [Log Bytes Rsvd] , SUBSTRING(st.text, (r.statement_start_offset/2)+1, ((CASE r.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE r.statement_end_offset END - r.statement_start_offset)/2) + 1) AS statement_text , st.[text] AS [Last T-SQL Text] , qp.[query_plan] AS [Last Plan] FROM sys.dm_tran_database_transactions tdt JOIN sys.dm_tran_session_transactions tst ON tst.[transaction_id] = tdt.[transaction_id] JOIN sys.[dm_exec_sessions] s ON s.[session_id] = tst.[session_id] JOIN sys.dm_exec_connections c ON c.[session_id] = tst.[session_id] LEFT OUTER JOIN sys.dm_exec_requests r ON r.[session_id] = tst.[session_id] CROSS APPLY sys.dm_exec_sql_text (c.[most_recent_sql_handle]) AS st OUTER APPLY sys.dm_exec_query_plan (r.[plan_handle]) AS qp WHERE DB_NAME (tdt.database_id) = 'tempdb' ORDER BY [Log Bytes Used] DESC GO
@viktorbekker12323 жыл бұрын
Александр, приветствую! Спасибо большое, за очередной интересный доклад. А что делать в большой, промышленной среде , хотя бы на 30+ инстансов(на разных хостах)? Дело в том, что эта утилита требует ручной настройки и судя по всему за ней нужно следить(с блокировками и профайлером шутки плохи). Есть ли какое-то решение/лучшие практики как построить автоматизированный мониторинг большого числа инстансов(с алертами)? Сам использую zabbix+TSQL, в принципе все работает. Но было бы очень интересное послушать Ваше мнение)
@datainternalsru60253 жыл бұрын
Виктор, приветствую! Хороший вопрос:) Ну... давайте начнем с того, что определимся хотим ли мы видеть платное или бесплатное решение:) Ну и предполагаю ответ, что хотелось бы конечно что-то, что не будет стоить, как "чугунный мост" . И вот тут наступает немая пауза, потому что все крутые мониторинги именно под SQL, подчеркну именно заточенные под SQL - они платные. Я говорю про те, которые могут и специализированно мониторить, т.е. понимают, чем latch от lock отличается и знают про клерк памяти, если нужно мониторить базовые показатели, жизнь сервиса, но не погружаться сильно глубоко, то мне тут нравится SCOM от Microsoft. Свою задачу он знает и решает, но "глубины" от него, к сожалению, ждать сильно не приходится, но алерты и т.д. там все это есть. Теперь про бесплатное и вот решение zabbix+tsql мне кажется, что самое крутое, если кто-то может предложить тут в комментах еще что-то велком! Я буду только ЗА! Есть еще вот такая штука sqlwatch.io/, она опенсорсная, построенная на tsql+powerbi, но алертить, кажется мне, не умеет. ну и лично у меня были некоторые проблемы с настройкой, но выглядит круто и знает про многие аспекты "жизни" SQL Server. Посмотрите, может быть понравится концепция :)
@viktorbekker12323 жыл бұрын
Спасибо за развернутый ответ! :) По поводу платных решений: Наверное, проще выбрать / сделать свое условно бесплатное решение. Заплатить ДБА который его напишет, внедрит, будет интерпретировать отчеты и оперативно реагировать на алерты. Нет толку от платного решения без ДБА, который может его разобрать и вылечить все issues (ИМХО). Однако, может быть вы знаете какие-нибудь платные решения с “killer features”, что даже коллектив высококвалифицированных MS SQL инженеров быстро и качественно их не сделает в разумный срок(пара месяцев)? Над покупкой такого прорывного решения можно и задуматься.. Глянул sqlWatch - здорово! Как минимум 38 неплохих issues + готовый TSQL + примеры визуализации... еще и в свободном доступе, это очень круто. Тут сразу вспоминается RAP от Microsoft :)) Вопрос: Есть ли где-то список issues которые потенциально может поймать RAP. Их изучение и анализ очень бы пригодилось при построении системы мониторинга многим специалистам по SQL Server?
@datainternalsru60253 жыл бұрын
@@viktorbekker1232 что-то из платного мне сложно советовать, потому что я его не использую. Однако, я сталкивался с правильными картинками из этого софта, по которым можно понять насколько детальная внутри информация. Вот тут нашлась линка на какой-то сайт: www.comparitech.com/net-admin/sql-server-monitoring-tools/ где в ТОП7 "сидят" как раз эти софтины. У них у всех есть триалки, поэтому можно поковырять, посмотреть. Однако, надо понимать, что все они "под капотом" используют одни и те же механизмы - DMV, xEvent, perfmon. Вот 3 основых источника информации у всех, поэтому сделать какую-то "вау фичу" не просто, так чтобы она не появилась у конкурентов через релиз (условно говоря), потому что источники информации ясны, более того запросы все трассируются на "раз два". Поэтому я думаю, что у всех примерно равные возможности будут. И еще момент, надо очень внимательно смотреть за тем, что они будут творить с вашим сервером, нагрузка от этих туловин может быть. Еще посмотрите в сторону скриптов от Брен Озара - www.brentozar.com/first-aid/ Тут довольно много чего есть интересного. RAP от Microsoft... там очень много проверок, этот софт с историей. Одних только вариантов issue там более 600-700 сотен, насколько я помню. Списком все эти "проблемы" я сомневаюсь, что можно найти где-то в открытом доступе, это было бы нарушением прав скорее всего.
@antonanashkin843 жыл бұрын
Приветствую, Александр. Рад видеть в добром здравии в это нелегкое время. Вторая часть видео обязательно нужна для полноты повествования. Данное видео прекрасно зашло!
@datainternalsru60253 жыл бұрын
Приветствую, Антон! И я рад Вас видеть! :))) Ну что ж... надо будет собрать мысли "в кучку"... и попробовать как-то рассказать, что внутри файлов смотреть и как анализировать. И желательно не на сто часов видео)))
@KittenYour3 жыл бұрын
Благодарю!
@datainternalsru60253 жыл бұрын
Рад, что материал вам был интересен!
@KittenYour3 жыл бұрын
@@datainternalsru6025 Жаль видео мало. Сейчас контента в ру сегменте по mssql вообще мало толкового.
@datainternalsru60253 жыл бұрын
@@KittenYour, а какие темы по sql были бы интересны?
@ВалерьянКузьминако3 жыл бұрын
А что делать если упадёт сервер с ISCSI? вся кластеризация бессмысленна получается?
@Welk5552 жыл бұрын
Он тоже кластеризируется :) есть разные способы
@yuch72193 жыл бұрын
Добрый день . каким образом с генерировали нагрузку ??? Скрипт ????
@datainternalsru60253 жыл бұрын
Добрый день! И да и нет, это утилита, внутри неё сидят скрипты уже. Честно сказать, какой именно скрипт использовался, уже сложно вспомнить.
@ЕвгенийСаморуков-ч6х3 жыл бұрын
Спасибо. Хорошее видео
@omm10294 жыл бұрын
Достаточно много инфы по теме, что искал..на русском. Спасибо , что не поленились и записали такой формат. Как начну немного разбираться, тоже попробую записать туториал для грядущего поколения админов)
@omm10294 жыл бұрын
Я ослышался? Конфигурация на сервере, не на ноуте?) Интересно что за система охлаждения установлена , чтобы вывозить такие параметры в работе?
@datainternalsru60254 жыл бұрын
Добрый день! Стенд собирался на рабочем ноуте, lenovo p50, на нем все обкатывалось, тестировалось и эти видео делал. У заказчика, где выполнялись реальные работы, там сервер конечно. И не один:)
@KittenYour4 жыл бұрын
Скрипты было бы не плохо приложить.
@KittenYour4 жыл бұрын
Спасибо. Полезный материал.
@Anti4pok4 жыл бұрын
у меня 48 ЦП и 48 файлов данных, при этом есть ожидания (10ms)PAGELATCH_SH:tempdb:28(PFS). Что будет если я сделаю 64 файла данных при 48 процессорах? не будет ли хуже
@datainternalsru60254 жыл бұрын
Антон, приветствую! Для начала проверьте, что у вас файлы одного размера (текущий размер имеет значение) и размер автоприроста у всех файлов стоит одинаковый. Еще хорошая практика флаги - T1117, T1118. до 2016 они актуальны, потом уже не очень ( blog.sqlauthority.com/2020/02/27/sql-server-tempdb-and-trace-flag-1117-and-1118-not-required/ www.mssqltips.com/sqlservertip/4364/sql-server-2016-trace-flags-1118-and-1117-for-page-allocations/) После этого можно наверно подумать про увеличение количества файлов, но 48 и так довольно много, у меня как-то сомнения, что доп. файлы помогут такой проблеме. Я не могу припомнить, чтобы кто-то из моих заказчиков имел такой конфиг, чтобы файлов было больше, чем физических ядер на сервере. Сложно предположить, какой может быть от этого эффект. А что у вас за нагрузка такая на tempdb? Много временных объектов или механизм версионности работает?
@Anti4pok4 жыл бұрын
Лайк подписка =) скрипт отличный на 7 минуте
@dominickmax77353 жыл бұрын
i dont mean to be so offtopic but does anybody know of a method to log back into an instagram account..? I stupidly lost the account password. I would appreciate any help you can offer me!
@coltenben34703 жыл бұрын
@Dominick Max instablaster =)
@dominickmax77353 жыл бұрын
@Colten Ben thanks for your reply. I found the site on google and Im in the hacking process now. Takes a while so I will get back to you later when my account password hopefully is recovered.
@dominickmax77353 жыл бұрын
@Colten Ben it worked and I finally got access to my account again. I'm so happy:D Thanks so much you saved my ass !
@coltenben34703 жыл бұрын
@Dominick Max You are welcome =)
@europeiz4 жыл бұрын
Жаль что быстро и без подробностей, я люблю видео формат а по ISCSI и кластером видео подробных на рутубе вообще нету
@ВераХорева-ъ4е4 жыл бұрын
Благодарю за видео! Очень полезный и качественный материал!
@ДенисРубашкин-п5т4 жыл бұрын
Добрый день! Корень проблемы ведь в маленьком гранте памяти? Не помню точно, для строк переменной длины он рассчитывается для половины значения размерности столбца? Поэтому, если увеличить размерность столбца, по идее должен увеличится запрашиваемый грант памяти и, соответственно, уменьшится сброс в tempdb. В принципе любые запросы с сортировкой/хешом по такому столбцу поимеют проблемы со сливом в tempdb. А если для UPDATE STATISTICS указать некий MAXDOP отличный от нуля это спровоцирует параллелизм или все равно должен порог стоимости быть превышен? Я это к тому, что параллельный запрос тоже запрашивает больший грант памяти.
@datainternalsru60254 жыл бұрын
Денис, приветсвую! Сорри, вовремя не увидел комментарий. Я не смог добиться изменения memory grant для такой статистики. Мне это тоже оч. не понравилось и я в бэкграунде игрался, но результата особо не было. Параллельный план должен больше брать, конечно, но ошибка уж очень большая была и, как мне кажется, не компенсируется.
@ЕвгенийСмирнов-ш9с4 жыл бұрын
Спасибо, интересно про перенос посчитанной статистики и некоторые моменты по xEvent (логирование события создания статистики).
@datainternalsru60254 жыл бұрын
Евгений, пожалуйста! Рад, что было интересно. Про перенос статистики сам случайно узнал, что так можно. На практике пока не удалось еще применить, но штука оч. интересная.
@ЕвгенийСмирнов-ш9с4 жыл бұрын
Спасибо. Узнал пару новых моментов относительно статистики. Было бы интересно посмотреть еще что-то на эту тему.
@datainternalsru60254 жыл бұрын
Рад, что понравилось. Есть еще одно видео на данную тему - kzbin.info/www/bejne/ipXLmYdridakd9k Или Вам было бы интересно про обслуживание баз данных видео?
@konstantinvorobev59264 жыл бұрын
Отличный материал, спасибо!
@antonanashkin844 жыл бұрын
Александр, добрый день. Отличное видео, полезная тема, с нетерпением жду вторую часть.