|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 01:24 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
Relic HunterМожет ENT более агресивно жует запросы чем стандарт?Я бы предположил разные планы. Параметры используете? Подсчитайте общее количество прочитаных/обновленных страниц для одинаковых запросов в двух базах. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 03:59 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
Relic Hunter, Обновите статистику на проде. При деплое, накате патчей и сервис паков всегда делайте это. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 10:39 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
Relic Hunter, ядро у редакций одно и то же, но на STD добавлены ограничения. Разные рабочие нагрузки, разные кэши, разные планы выполнения запроса. На производственном могут еще и приложения работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 11:45 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
Relic Hunter, Не знаю что у Вас, но 2017 стандарт вроде не использует индексированные view. А ентерпрайз (и девелопер) используют. Когда есть индексированные view по таблице и оптимизатор видит, что по view запрос легче, то использует их. Но в стандарте маркетинговое ограничение. Однако при сравнении плана это видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 11:57 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
LogrusAS Relic Hunter, Не знаю что у Вас, но 2017 стандарт вроде не использует индексированные view. А ентерпрайз (и девелопер) используют. Когда есть индексированные view по таблице и оптимизатор видит, что по view запрос легче, то использует их. Но в стандарте маркетинговое ограничение. Однако при сравнении плана это видно. Лень вам with(noexpand) написать - платите. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 14:09 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
aleks222 Лень вам with(noexpand) написать - платите. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 14:18 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
aleks222, Я Вас может быть безмерно удивлю, но оказывается MS SQL Server используется не только в самописных приложениях. А и в вполне себе независимых и больших. Dynamics Nav к примеру из коробки имеет много индексированных view. И запросы делает как специально для них. Но работает это все только на ентерпрайз. Мне что, все ядро Dynamics Nav переписывать? И каким образом вообще with(noexpand) поможет если скажем есть таблица и индексированное view с агрегатами? Я говорю что таком случае запрос типа: SELECT SUM(field1) FROM table WHERE field2='some' выполнится в стандарте и ентерпрайзе по РАЗНЫМ индексам. Кстати не факт что индес во вьехе будет оптимальнее. Так куда тут запихнуть Ваш with(noexpand)? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2021, 12:48 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
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. Но проще, конечно, забашлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2021, 13:59 |
|
Standard vs Enterprise (Developer Edition)
|
|||
---|---|---|---|
#18+
Заметил, что на проде 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 ] ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2021, 18:09 |
|
|
start [/forum/topic.php?fid=46&fpage=18&tid=1684455]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 264ms |
total: | 397ms |
0 / 0 |