powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - проще
8 сообщений из 58, страница 3 из 3
LINQ - проще
    #39748936
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypМожет вы господа сначала документацию почитаете, прежде чем вываливать на форум всякую бредятину? А то у одного оптимизатор хватает первый план который успел построить за заданное время, у второго проблемы с outer join'ом...

если по сути сказать не способен, вовсе не обязательно тут строить из себя дАртаньяна и позориться.
...
Рейтинг: 0 / 0
LINQ - проще
    #39748976
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypМожет вы господа сначала документацию почитаете
О чём ты? Давай ссылку, фигли
...
Рейтинг: 0 / 0
LINQ - проще
    #39748982
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я пока дам свою:
What Is Optimizer Timeout?SQL Server uses a cost-based query optimizer. Therefore, it selects a query plan with the lowest cost after it has built and examined multiple query plans.
One of the objectives of the SQL Server query optimizer (QO) is to spend a "reasonable time" in query optimization as compared to query execution.
Therefore, QO has a built-in threshold of tasks to consider before it stops the optimization process. If this threshold is reached before QO has considered most, if not all, possible plans then it has reached the Optimizer TimeOut limit.

An event is reported in the query plan as Time Out under "Reason For Early Termination of Statement Optimization." It's important to understand that this threshold isn't based on clock time but on number of possibilities considered.
In current SQL QO versions, over a half million possibilities are considered before a time out is reached.


Optimizer timeout is designed in Microsoft SQL Server and in many cases encountering it is not a factor affecting query performance.
However, in some cases the SQL query plan choice may be affected by optimizer timeout and thus performance could be impacted.

When you encounter such issues, if you understand optimizer timeout mechanism and how complex queries can be affected in SQL Server, it can help you to better troubleshoot and improve your performance issue.
Understanding Optimizer Timeout and how Complex queries can be Affected in SQL Server
...
Рейтинг: 0 / 0
LINQ - проще
    #39749246
Кнюпель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА во вторых оптимизатор ограничен по времени. Из того, что успел построить, выбрал более подходящий.

да не ограничен он ни по какому времени, он ограничен по количеству планов т.к. их миллиард может быть при множестве джойнов. И само значение этого ограничения не жесткое, а зависит от некоторых артефактов, полученных на предыдущих шагах
Timeout слово неудачное выбрали, хотя для тех, кто дальше linq не понимает - сойдет
...
Рейтинг: 0 / 0
LINQ - проще
    #39749772
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALessypМожет вы господа сначала документацию почитаете
О чём ты? Давай ссылку, фигли


Нет уж, изволь почитать документацию! Какие ещё ссылки?
...
Рейтинг: 0 / 0
LINQ - проще
    #39749885
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КнюпельskyANAА во вторых оптимизатор ограничен по времени. Из того, что успел построить, выбрал более подходящий.

да не ограничен он ни по какому времени, он ограничен по количеству планов т.к. их миллиард может быть при множестве джойнов. И само значение этого ограничения не жесткое, а зависит от некоторых артефактов, полученных на предыдущих шагах
Timeout слово неудачное выбрали, хотя для тех, кто дальше linq не понимает - сойдет
Таки дайте ссылку, где вместо reasonable time написано про count. Буду признателен.
...
Рейтинг: 0 / 0
LINQ - проще
    #39749935
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
But I see an Optimizer Timeout with a simpler query?

Nothing with QO is simple (black and white).
There are so many possible scenarios, its complexity so high that it is hard to grasp all of the possibilities.
The Query Optimizer may dynamically adjust/set timeout threshold based on the cost of the plan found at a certain stage.
For example, if a plan that appears relatively "cheap" is found, then the task limit to search for a better plan may be reduced.
Therefore, grossly underestimated cardinality estimation may be one example for hitting an optimizer timeout early.
In this case, the focus of investigation is cardinality estimation. This is a rarer case than the scenario that's discussed previously about running a complex query, but it is possible.
...
Рейтинг: 0 / 0
LINQ - проще
    #39749964
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНеоднократно сталкивался с тормозами MSSQL в запросах с подзапросами
Код: sql
1.
select ... from (select ...) ...



Оптимизатор почему-то строил нездоровый план. В итоге лечил временными таблицами
Код: sql
1.
2.
select ... into #tmp ...
select ... from #tmp ...



БД большая, некоторые запросы ускорялись в 10 и более раз.
И про это там тоже есть :)

Re-write the query:
Consider breaking up the single multi-table query into multiple queries by using temporary tables.
However, you shouldn't always do this, breaking up the query is just one of the ways to simplify the task for the optimizer.

See the following sample:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select ...
from t1
join t2
on t1.id = t2.id
join t3
on t3.id = t2.id
join t4
on t4.id = t3.id


To optimize, try to break down into two queries:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select ...
into #temp1
from t1
join t2
on t1.id = t2.id

select ...
From t3
join #temp1
on t3.id = #temp1.id
join t4
on t4.id = t3.id
...
Рейтинг: 0 / 0
8 сообщений из 58, страница 3 из 3
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - проще
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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