powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос с виртуальной колонкой
24 сообщений из 24, страница 1 из 1
Запрос с виртуальной колонкой
    #39763988
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте !!!
Есть запрос, который возвращает 217 сток мгновенно.
Добавляю к запросу виртуальную колонку и запрос выполняется полторы минуты.
Помогите пожалуйста решить загадку
Вот скрин
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39763991
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich,

так там закладочка у вас "План выполнения" там и посмотрите.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39763998
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы хотите сказать что от добавления в результат виртуальной колонки поменялся план выполнения ?
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764002
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichВы хотите сказать что от добавления в результат виртуальной колонки поменялся план выполнения ?
у вавс вкладка не открывается?
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764020
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Планы разные.
Подскажите почему они разные и что нужно сделать.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764025
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich,

Разные потому что когда был сделан "старый" было другое состояние(таблицы, базы, сервера, марса), вы запрос изменили и был сделан новый план "на сейчас" который вот такой вот :)

Что там с инедксками, статистиками, если раньше соглашалось на merge

ну или RECOMPILE
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764029
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое у вас ААА = 1?
Это присвоение такое?
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764031
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizzaА что такое у вас ААА = 1?
Это присвоение такое?
испугался?
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764033
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Никогда не использовал такую конструкцию. Выглядит дико
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764037
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizzaTaPaK,

Никогда не использовал такую конструкцию. Выглядит дикоСинтаксис старый, известный. Но я предпочитаю использовать 1 AS AAA вместо AAA = 1, второе выглядит каким то неправильным.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764040
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizzaTaPaK,

Никогда не использовал такую конструкцию. Выглядит дико
то что вы чем то не пользуетесь, ничего не означает, нужна некая константа в результирующем наборе
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764041
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgPizzaPizzaTaPaK,

Никогда не использовал такую конструкцию. Выглядит дикоСинтаксис старый, известный. Но я предпочитаю использовать 1 AS AAA вместо AAA = 1, второе выглядит каким то неправильным.
ну я пишу [AAA] = 1, что не так, все AS фиг "выровняешь" что бы это не выглядело дико :)
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764044
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKPizzaPizzaTaPaK,

Никогда не использовал такую конструкцию. Выглядит дико
то что вы чем то не пользуетесь, ничего не означает, нужна некая константа в результирующем наборе

Константы всегда через as делаю. Это же не присваивание переменной или case хотя и case тоже предпочитаю через as. Но это все вкусовщина конечно.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764050
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgPizzaPizzaTaPaK,

Никогда не использовал такую конструкцию. Выглядит дикоСинтаксис старый, известный. Но я предпочитаю использовать 1 AS AAA вместо AAA = 1, второе выглядит каким то неправильным.

У всех видимо свои представления о прекрасном. Для меня = это сравнение, поэтому в селекте отвлекает. В set или where итп пожалуйста.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764051
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizzaalexeyvgпропущено...
Синтаксис старый, известный. Но я предпочитаю использовать 1 AS AAA вместо AAA = 1, второе выглядит каким то неправильным.

У всех видимо свои представления о прекрасном. Для меня = это сравнение, поэтому в селекте отвлекает. В set или where итп пожалуйста.
для меня сравнение это ==, то в sql я вообще страдаю
ну и законный синтаксис
авторSELECT [ ALL | DISTINCT ]
[ TOP ( expression ) [ PERCENT ] [ WITH TIES ] ]
<select_list>
<select_list> ::=
{
*
| { table_name | view_name | table_alias }.*
| {
[ { table_name | view_name | table_alias }. ]
{ column_name | $IDENTITY | $ROWGUID }
| udt_column_name [ { . | :: } { { property_name | field_name }
| method_name ( argument [ ,...n] ) } ]
| expression
[ [ AS ] column_alias ]
}
| column_alias = expression
} [ ,...n ]
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764056
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Это кстати головной баг - после того, как много повожусь с запросами, потом начинается if ( a = b ) и потом туплю долго чё условие все время срабатывает.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764063
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select  A.IdElements, A.IdElements, U.IdEmployee, U.IdPost, U.IdStructureLR, D.DateDay, G.FirstQuantityHour+G.SecondQuantityHour+G.ThirdQuantityHour, G.FirstQuantityHour+G.SecondQuantityHour+G.ThirdQuantityHour,
       D.IdFirstTypeDay, D.IdSecondTypeDay, D.IdThirdTypeDay, D.IdFourthTypeDay,
       D.FirstQuantityHour, D.SecondQuantityHour, D.ThirdQuantityHour, D.FourthQuantityHour,        
       U.SignBasis, U.SortNotBasis, U.IdGraphWork, U.PercentSalary,U.AddQuantityHour,
       P.TypeSalary, U.SignBasisCategory, U.TypeMove, AAA=1
 from StructureLR A
 inner join ViewTableWorkEmployee U on A.IdStructureLR = U.IdStructureLR and U.IdTableWorkType = 0 and U.IdMonth between month(@SDate) and month(@FDate) and U.TheYear between year(@SDate) and year(@FDate)
 inner join DetailsTableWork D on D.IdEmployee = U.IdEmployee and D.IdStructureLR = U.IdStructureLR and D.IdTableWork = U.IdTableWork
 inner join GraphWorkDetails G on U.IdGraphWork = G.IdGraphWork and G.DateDay = D.DateDay
 inner join Employee S on D.IdEmployee = S.IdEmployee
 inner join Post P on U.IdPost = P.IdPost
 where A.Lft between @IdLft and @IdRght and
       A.Rght between @IdLft and @IdRght
OPTION(RECOMPILE)



Добавил к запросу OPTION(RECOMPILE) Запрос стал выполняться мгновенно. Но это не решает проблему.
Не понятно, почему 10 лет процедура выбирала правильный план запроса, а теперь вдруг нет.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764066
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich
Код: sql
1.
OPTION(RECOMPILE)



Добавил к запросу OPTION(RECOMPILE) Запрос стал выполняться мгновенно. Но это не решает проблему.
Не понятно, почему 10 лет процедура выбирала правильный план запроса, а теперь вдруг нет.
Ну вот, спустья 10 лет вы начнёте заниматься изцчением sql сервера, добро пожаловать в ад
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764071
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select  A.IdElements, A.IdElements, U.IdEmployee, U.IdPost, U.IdStructureLR, D.DateDay, G.FirstQuantityHour+G.SecondQuantityHour+G.ThirdQuantityHour, G.FirstQuantityHour+G.SecondQuantityHour+G.ThirdQuantityHour,
       D.IdFirstTypeDay, D.IdSecondTypeDay, D.IdThirdTypeDay, D.IdFourthTypeDay,
       D.FirstQuantityHour, D.SecondQuantityHour, D.ThirdQuantityHour, D.FourthQuantityHour,        
       U.SignBasis, U.SortNotBasis, U.IdGraphWork, U.PercentSalary,U.AddQuantityHour,
       P.TypeSalary, U.SignBasisCategory, U.TypeMove, AAA=1
 from StructureLR A
 inner join ViewTableWorkEmployee U on A.IdStructureLR = U.IdStructureLR and U.IdTableWorkType = 0 and U.IdMonth between month(@SDate) and month(@FDate) and U.TheYear between year(@SDate) and year(@FDate)
 inner join DetailsTableWork D on D.IdEmployee = U.IdEmployee and D.IdStructureLR = U.IdStructureLR and D.IdTableWork = U.IdTableWork
 inner join GraphWorkDetails G on U.IdGraphWork = G.IdGraphWork and G.DateDay = D.DateDay
 inner join Employee S on D.IdEmployee = S.IdEmployee
 inner join Post P on U.IdPost = P.IdPost
 where A.Lft between @IdLft and @IdRght and
       A.Rght between @IdLft and @IdRght
OPTION(RECOMPILE)



У вас процедура с параметрами - сервер пытается угадать...
Если позволяет сервер - пишите option ( OPTIMIZE FOR ( @IdLft UNKNOWN, ...

Добавил к запросу OPTION(RECOMPILE) Запрос стал выполняться мгновенно. Но это не решает проблему.
Не понятно, почему 10 лет процедура выбирала правильный план запроса, а теперь вдруг нет.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764192
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetrashkevichНе понятно, почему 10 лет процедура выбирала правильный план запроса, а теперь вдруг нет.Статистика через 10 лет перестала соответствовать реальным данным? Обновите её.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764268
Petrashkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/quot]Статистика через 10 лет перестала соответствовать реальным данным? Обновите её.[/quot]
Реорганизовал все индексы, обновил всю статистику, перестроил все вьюшки.
А без OPTION(RECOMPILE) всё равно тормозит
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764269
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich,

оба плана в xml покажите
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764306
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petrashkevich,

потому, что статистика распределения данных по переменным неравномерная по сравнению с остальными значениями. Планы выполнения разные.
...
Рейтинг: 0 / 0
Запрос с виртуальной колонкой
    #39764311
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовPetrashkevich,

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


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