Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ускорить выполнение / 14 сообщений из 14, страница 1 из 1
20.08.2021, 13:04
    #40092211
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Всем привет.

у меня есть select, который работает, но время возврата данных занимает много времени. Каким образом оптимизировать данный скрипт, так подозреваю, что производительность падает в этом месте ...
Код: sql
1.
and Code in (select distinct Code from Product)

...

Код: sql
1.
2.
3.
4.
select Code, count(distinct ProductName) as Amount, sum(Avaliable) as Avaliable from Product
where [Status] = 'New' and Code in (select distinct Code from Product)
group by Code
order by Amount desc



Результат возврата select -> скрин нижe

[img=]
...
Рейтинг: 0 / 0
20.08.2021, 13:12
    #40092215
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Попробуйте вместо "and Code in " сделать "and exists"
...
Рейтинг: 0 / 0
20.08.2021, 13:17
    #40092221
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Ролг Хупин
Попробуйте вместо "and Code in " сделать "and exists"


Чо пробовать? Трясти надо.

and Code in - бессмысленно, чуть более, чем полностью.
Можно смело убрать.
Ни один байт не пострадает.
...
Рейтинг: 0 / 0
20.08.2021, 13:20
    #40092222
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Ролг Хупин,

Спасибо большое, производительность увеличилась, теперь возврат данных происходит за 2 мин. вместо 11 мин.
...
Рейтинг: 0 / 0
20.08.2021, 13:26
    #40092226
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Caxa_ASS
Ролг Хупин,

Спасибо большое, производительность увеличилась, теперь возврат данных происходит за 2 мин. вместо 11 мин.

Вам следует переквалифицироваться в управдомы.
...
Рейтинг: 0 / 0
20.08.2021, 13:27
    #40092227
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
aleks222

and Code in - бессмысленно, чуть более, чем полностью.
Можно смело убрать.

+1
...
Рейтинг: 0 / 0
20.08.2021, 13:38
    #40092241
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
aleks222,

серьезно, горе советчикам привет и чао
...
Рейтинг: 0 / 0
20.08.2021, 14:55
    #40092259
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Caxa_ASS
aleks222,

серьезно, горе советчикам привет и чао
Слова не мальчика, но мужа?
aleks2 прав на все 100%, ибо невозможно выбрать из таблицы то, что в ней нет.
...
Рейтинг: 0 / 0
20.08.2021, 16:05
    #40092289
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
iap
Caxa_ASS
aleks222,

серьезно, горе советчикам привет и чао
Слова не мальчика, но мужа?
aleks2 прав на все 100%, ибо невозможно выбрать из таблицы то, что в ней нет.


Не, ну есть один экзотический случай, когда бред тредстартера сработает нетривиально: некий CODE is null.
Только сомнительно, что тредстартер столь тонкий пограммизд.
...
Рейтинг: 0 / 0
20.08.2021, 19:53
    #40092357
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
aleks222
Не, ну есть один экзотический случай, когда бред тредстартера сработает нетривиально: некий CODE is null.
Если такое может быть, то лучше написать and Code in not null
Бредовый код, бредовая задача, "программирование вслепую по слухам"
...
Рейтинг: 0 / 0
20.08.2021, 23:51
    #40092379
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
Создайте некластерный индекс по полю, если уж это так критично. Особенно - если таблица наполняется медленно, а значения из неё выбираются часто.

create nonclustered index Code_index on Product (code) - что-то типа такого.


И уберите потом distinct в подзапросе (за ненадобностью)
...
Рейтинг: 0 / 0
21.08.2021, 09:43
    #40092395
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
SIMPLicity_
Создайте некластерный индекс по полю, если уж это так критично. Особенно - если таблица наполняется медленно, а значения из неё выбираются часто.

create nonclustered index Code_index on Product (code) - что-то типа такого.


И уберите потом distinct в подзапросе (за ненадобностью)


Здоровы ли вы?
Какой индекс, какой distinct?
Зачем?
...
Рейтинг: 0 / 0
21.08.2021, 17:10
    #40092420
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
aleks222,

да, если честно, к запросу не присматривался, а тут оказывается:

select Code , ... from Product
where ... and Code in ( select distinct Code from Product )
group by Code
order by Amount desc

Так что согласен. Извините все.
...
Рейтинг: 0 / 0
21.08.2021, 19:40
    #40092432
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорить выполнение
aleks222
Ролг Хупин
Попробуйте вместо "and Code in " сделать "and exists"


Чо пробовать? Трясти надо.

and Code in - бессмысленно, чуть более, чем полностью.
Можно смело убрать.
Ни один байт не пострадает.


Всё,да,протормозил, не вникал в суть запроса, ай да ТС, прямо издевается над нами
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ускорить выполнение / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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