Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не пойму почему тормозит сервер  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
есть сервер
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)   Aug 22 2017 17:04:49   Copyright (C) 2017 Microsoft Corporation  Enterprise Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 16299: ) 


при попытке изменить любую хп через SSMS v17.4 постоянные тормоза при открытии хп. так же тормоза при попытке "раскрыть" таблицу - посмотреть её Columns.

запустил профайлер, увидел где тормозит:
Картинка с другого сайта.

текст запроса:
exec sp_executesql N'SELECT
sp.name AS [Name],
sp.object_id AS [ID],
sp.create_date AS [CreateDate],
sp.modify_date AS [DateLastModified],
ISNULL(ssp.name, N'''') AS [Owner],
CAST(case when sp.principal_id is null then 1 else 0 end AS bit) AS [IsSchemaOwned],
SCHEMA_NAME(sp.schema_id) AS [Schema],
CAST(
 case 
    when sp.is_ms_shipped = 1 then 1
    when (
        select 
            major_id 
        from 
            sys.extended_properties 
        where 
            major_id = sp.object_id and 
            minor_id = 0 and 
            class = 1 and 
            name = N''microsoft_database_tools_support'') 
        is not null then 1
    else 0
end          
             AS bit) AS [IsSystemObject],
CAST(ISNULL(OBJECTPROPERTYEX(sp.object_id,N''ExecIsAnsiNullsOn''),0) AS bit) AS [AnsiNullsStatus],
CAST(ISNULL(OBJECTPROPERTYEX(sp.object_id,N''ExecIsQuotedIdentOn''),0) AS bit) AS [QuotedIdentifierStatus],
CAST(ISNULL(OBJECTPROPERTYEX(sp.object_id, N''IsSchemaBound''),0) AS bit) AS [IsSchemaBound],
CAST(CASE WHEN ISNULL(smsp.definition, ssmsp.definition) IS NULL THEN 1 ELSE 0 END AS bit) AS [IsEncrypted],
CAST(ISNULL(smsp.is_recompiled, ssmsp.is_recompiled) AS bit) AS [Recompile],
case when amsp.object_id is null then N'''' else asmblsp.name end AS [AssemblyName],
case when amsp.object_id is null then N'''' else amsp.assembly_class end AS [ClassName],
case when amsp.object_id is null then N'''' else amsp.assembly_method end AS [MethodName],
case when amsp.object_id is null then case isnull(smsp.execute_as_principal_id, -1) when -1 then 1 when -2 then 2 else 3 end else case isnull(amsp.execute_as_principal_id, -1) when -1 then 1 when -2 then 2 else 3 end end AS [ExecutionContext],
case when amsp.object_id is null then ISNULL(user_name(smsp.execute_as_principal_id),N'''') else user_name(amsp.execute_as_principal_id) end AS [ExecutionContextPrincipal],
CAST(ISNULL(spp.is_auto_executed,0) AS bit) AS [Startup],
CASE WHEN sp.type = N''P'' THEN 1 WHEN sp.type = N''PC'' THEN 2 ELSE 1 END AS [ImplementationType],
CAST(CASE sp.type WHEN N''RF'' THEN 1 ELSE 0 END AS bit) AS [ForReplication],
ISNULL(sm.uses_native_compilation,0) AS [IsNativelyCompiled]
FROM
sys.all_objects AS sp
LEFT OUTER JOIN sys.database_principals AS ssp ON ssp.principal_id = ISNULL(sp.principal_id, (OBJECTPROPERTY(sp.object_id, ''OwnerId'')))
LEFT OUTER JOIN sys.sql_modules AS smsp ON smsp.object_id = sp.object_id
LEFT OUTER JOIN sys.system_sql_modules AS ssmsp ON ssmsp.object_id = sp.object_id
LEFT OUTER JOIN sys.assembly_modules AS amsp ON amsp.object_id = sp.object_id
LEFT OUTER JOIN sys.assemblies AS asmblsp ON asmblsp.assembly_id = amsp.assembly_id
LEFT OUTER JOIN sys.procedures AS spp ON spp.object_id = sp.object_id
LEFT OUTER JOIN sys.all_sql_modules AS sm ON sm.object_id = sp.object_id
WHERE
(sp.type = @_msparam_0 OR sp.type = @_msparam_1 OR sp.type=@_msparam_2)and(sp.name=@_msparam_3 and SCHEMA_NAME(sp.schema_id)=@_msparam_4)',N'@_msparam_0 nvarchar(4000),@_msparam_1 nvarchar(4000),@_msparam_2 nvarchar(4000),@_msparam_3 nvarchar(4000),@_msparam_4 nvarchar(4000)',@_msparam_0=N'P',@_msparam_1=N'RF',@_msparam_2=N'PC',@_msparam_3=N'usp_customer_list',@_msparam_4=N'dbo'


в ссмс выполняется 1 минуту 20 сек.

почему так долго? из-за чего такие тормоза?

-
Чудеса случаются. Это Вам любой программист скажет.
17 янв 18, 14:03    [21113888]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Увы эти запросы кочуют от версии к версии. И их менять вряд ли кто будет. Изначально писали индусы, потому как код SSMS 2005 планомерно расширяется в новых версиях. Также в запросе OPTION(RECOMPILE) не хватает - что спасло бы.

Если короче - то нужно смириться либо юзать альтернативные решение которые тоже далеки от идеала
17 янв 18, 14:50    [21114096]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
случайно нашел в чем причина.

предыстория.
был сервер MS SQL 2008R2, база (1) жила на нем с фиг знает каких времён.
поставили MS SQL 2017, базу подняли из бекапа, подняли compat.level до SQL server 2017 (140)
и вроде бы все хорошо работает.

но вот где-то с того времени появились непонятные тормоза при открытии хп для изменения или просто раскрытия списка хп или таблиц. студия уходила "в себя" и по минуте, полторы думала. тогда повозился, ответа не нашел, списал на фоновые процессы на ноуте, может ресурсов не хватало.

сегодня из-за невозможности так работать снес предыдущий сервер, поставил девелоп версию. поднял базу не (1) и всё отлично летало, работал. а потом понадобилось посмотреть код в (1), поднял её и тут же начались тормоза при открытии объектов (хранимок).

подумал, что может что-то некорректно обновилось при повылении левела базы с 2008 на 2017. решил создать новую бд и в неё перетянуть данные из (1). при попытке штатным мастером это сделать, получил ошибку выполнения:
Картинка с другого сайта.

т.е. в имени одной из таблиц был пробел в конце.
убрал пробел и всё залетало.

вот такое. может кому пригодится.
24 янв 18, 21:52    [21136027]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33651
Блог
наутилус,

сказки
24 янв 18, 22:42    [21136147]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
Критик,

убрал пробел в имени и проблема решилась. а так да. чудеса случаются.
24 янв 18, 22:56    [21136188]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
aleks222
Guest
Критик
наутилус,

сказки


Применительно к "летанию" конкретного приложения - вполне возможно.
Мож оно эту таблу ежемоментно терзает.

Но для сервера "в целом" - несомненные сказки.
25 янв 18, 09:27    [21136766]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
aleks222,

тормозила smss в момент открытия хп на изменения.
25 янв 18, 10:49    [21137173]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
iiyama
Member

Откуда:
Сообщений: 642
наутилус,
к сожалению, не удалось воспроизвести. Может это совокупность факторов
Microsoft SQL Server Management Studio 14.0.17199.0
Сервер
1. Microsoft SQL Server 2017 (RTM-CU1) (KB4038634) - 14.0.3006.16 (X64) Oct 19 2017 02:42:29 Copyright (C) 2017 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 15063: )
2. Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64) Jun 17 2016 19:14:09 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

CREATE procedure [dbo].[testprobelinname ]
as
begin
set nocount on;
print 'procedure dbo.[testprobelinname ]'
end
25 янв 18, 11:22    [21137315]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
iiyama
наутилус,
к сожалению, не удалось воспроизвести. Может это совокупность факторов

скорее всего, что какая-то магия. я сам был удивлён.
спросил напарника - говорит не трогал эту таблицу очень давно. а вылезло когда переехали на 2017 сервер и smss.
при чем тормоза наблюдались при работе с другой бд (на этом же сервере). при попытке в м.студии открыть хранимку - просто подвисает оболочка (в шапке появляется надпись "(Не отвечает)".

ну хорошо хоть скрин сделал на ошибке, где указано что проблема в имени таблицы, а то сегодня сам бы себе не поверил, что в этом была проблема )))) подумал бы что "сказки", приснилось ))
25 янв 18, 11:29    [21137358]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
наутилус
при попытке изменить любую хп через SSMS v17.4 постоянные тормоза при открытии хп. так же тормоза при попытке "раскрыть" таблицу - посмотреть её Columns.


наутилус
при попытке изменить любую хп через SSMS v17.4 постоянные тормоза при открытии хп. так же тормоза при попытке "раскрыть" таблицу - посмотреть её Columns.

iiyama
наутилус,
к сожалению, не удалось воспроизвести. Может это совокупность факторов
Microsoft SQL Server Management Studio 14.0.17199.0

Студия 17.3, а у коллеги 17.4. Как выяснили в соседней ветке - шрифты починили, а что-то еще наоборот сломали.
Редмонд во всей красе...
25 янв 18, 12:26    [21137813]     Ответить | Цитировать Сообщить модератору
 Re: Не пойму почему тормозит сервер  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7757
Может CLR сборки для GAC перекомпилоровал или ещё что.
26 янв 18, 18:59    [21142620]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить