Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Standard vs Enterprise (Developer Edition) / 10 сообщений из 10, страница 1 из 1
23.07.2021, 01:24
    #40085595
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
Hi,

Есть продуктовая база на sql-standard 2017 server и тестовая на sql-developer 2017 server. Все работает на Hyper-V, памяти по 20гб и 4 vcpu на каждой. Наблюдаю картину - выписка счета 60 сек на проде, и 20 сек на тесте. Копии базы одинаковые. Трейс ситуацию не прояснает. Жуткая смесь select/insert/update операторов и их много. Готов предоставить отладочную информации по вопросу.

Может ENT более агресивно жует запросы чем стандарт?

Microsoft SQL Server 2017 (RTM-CU22-GDR) (KB4583457) - 14.0.3370.1 (X64) Nov 6 2020 18:19:52 Copyright (C) 2017 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor)

Microsoft SQL Server 2017 (RTM-CU19) (KB4535007) - 14.0.3281.6 (X64) Jan 23 2020 21:00:04 Copyright (C) 2017 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor)
...
Рейтинг: 0 / 0
23.07.2021, 03:59
    #40085598
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
Relic HunterМожет ENT более агресивно жует запросы чем стандарт?Я бы предположил разные планы. Параметры используете?
Подсчитайте общее количество прочитаных/обновленных страниц для одинаковых запросов в двух базах.
...
Рейтинг: 0 / 0
23.07.2021, 10:39
    #40085654
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
Relic Hunter,

Обновите статистику на проде. При деплое, накате патчей и сервис паков всегда делайте это.
...
Рейтинг: 0 / 0
23.07.2021, 11:45
    #40085674
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
Relic Hunter,

ядро у редакций одно и то же, но на STD добавлены ограничения. Разные рабочие нагрузки, разные кэши, разные планы выполнения запроса. На производственном могут еще и приложения работать.
...
Рейтинг: 0 / 0
23.07.2021, 11:57
    #40085676
LogrusAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
Relic Hunter,

Не знаю что у Вас, но 2017 стандарт вроде не использует индексированные view. А ентерпрайз (и девелопер) используют.
Когда есть индексированные view по таблице и оптимизатор видит, что по view запрос легче, то использует их. Но в стандарте маркетинговое ограничение.

Однако при сравнении плана это видно.
...
Рейтинг: 0 / 0
23.07.2021, 14:09
    #40085705
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
LogrusAS
Relic Hunter,

Не знаю что у Вас, но 2017 стандарт вроде не использует индексированные view. А ентерпрайз (и девелопер) используют.
Когда есть индексированные view по таблице и оптимизатор видит, что по view запрос легче, то использует их. Но в стандарте маркетинговое ограничение.

Однако при сравнении плана это видно.

Лень вам with(noexpand) написать - платите.
...
Рейтинг: 0 / 0
23.07.2021, 14:18
    #40085709
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
aleks222
Лень вам with(noexpand) написать - платите.
Начиная с 2016 SP3 уже и этого не нужно.
...
Рейтинг: 0 / 0
25.07.2021, 12:48
    #40086016
LogrusAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
aleks222,

Я Вас может быть безмерно удивлю, но оказывается MS SQL Server используется не только в самописных приложениях.
А и в вполне себе независимых и больших.
Dynamics Nav к примеру из коробки имеет много индексированных view. И запросы делает как специально для них.
Но работает это все только на ентерпрайз. Мне что, все ядро Dynamics Nav переписывать?

И каким образом вообще with(noexpand) поможет если скажем есть таблица и индексированное view с агрегатами?

Я говорю что таком случае запрос типа:

SELECT SUM(field1) FROM table WHERE field2='some'
выполнится в стандарте и ентерпрайзе по РАЗНЫМ индексам. Кстати не факт что индес во вьехе будет оптимальнее.

Так куда тут запихнуть Ваш with(noexpand)?
...
Рейтинг: 0 / 0
25.07.2021, 13:59
    #40086036
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
LogrusAS
aleks222,

Я Вас может быть безмерно удивлю, но оказывается MS SQL Server используется не только в самописных приложениях.
А и в вполне себе независимых и больших.
Dynamics Nav к примеру из коробки имеет много индексированных view. И запросы делает как специально для них.
Но работает это все только на ентерпрайз. Мне что, все ядро Dynamics Nav переписывать?

И каким образом вообще with(noexpand) поможет если скажем есть таблица и индексированное view с агрегатами?

Я говорю что таком случае запрос типа:

SELECT SUM(field1) FROM table WHERE field2='some'
выполнится в стандарте и ентерпрайзе по РАЗНЫМ индексам. Кстати не факт что индес во вьехе будет оптимальнее.

Так куда тут запихнуть Ваш with(noexpand)?


Если у тя хватило денег на Dynamics Nav, наверное хватит и на энтерпрайз.

LogrusAS

Dynamics Nav к примеру из коробки имеет много индексированных view. И запросы делает как специально для них.
Но работает это все только на ентерпрайз. Мне что, все ядро Dynamics Nav переписывать?

Так куда тут запихнуть Ваш with(noexpand)?

Объясняю, для невежд

1. Исходное "индексированное view" переименовываем "индексированное view X"
2. Create vies "индексированное view" as select * from "индексированное view X" with(noexpand);
3. Но проще, конечно, забашлять.
...
Рейтинг: 0 / 0
29.07.2021, 18:09
    #40087154
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Standard vs Enterprise (Developer Edition)
Заметил, что на проде sp_reset_connection вызывается в 2 раза чаще чем на тесте. Оно и понятно, используется connection pool. Но возврат соединения в пул штука не дешевая. Может здесь быть собака зарыта?

sp_reset_connection resets the following aspects of a connection:

All error states and numbers (like @@error)

Stops all EC's (execution contexts) that are child threads of a parent EC executing a parallel query

Waits for any outstanding I/O operations that is outstanding

Frees any held buffers on the server by the connection

Unlocks any buffer resources that are used by the connection

Releases all allocated memory owned by the connection

Clears any work or temporary tables that are created by the connection

Kills all global cursors owned by the connection

Closes any open SQL-XML handles that are open

Deletes any open SQL-XML related work tables

Closes all system tables

Closes all user tables

Drops all temporary objects

Aborts open transactions

Defects from a distributed transaction when enlisted

Decrements the reference count for users in current database which releases shared database locks

Frees acquired locks

Releases any acquired handles

Resets all SET options to the default values

Resets the @@rowcount value

Resets the @@identity value

Resets any session level trace options using dbcc traceon()

Resets CONTEXT_INFO to NULL in SQL Server 2005 and newer [ not part of the original article ]
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Standard vs Enterprise (Developer Edition) / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]