Студия приостановленного выбора. Почему?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Студия приостановленного выбора. Почему?

Сообщение Anonymous »

Я не могу дать вам достаточно данных, чтобы воспроизвести ошибки, поэтому я собираюсь предоставить вам столько данных, сколько смогу сойти с рук. < /p>

var bookings = context.Booking
.Where(booking => booking.ConsigneeNumber == customer.GetCustomerTarget().Code
&& booking.CreatedAt >= from
&& booking.CreatedAt < to
&& booking.BookingLine.Any(b => b.BookingLineSpecification
.Any(c => c.CurrencyCode == code))
)

.Include(booking => booking.BookingLine)
.ThenInclude(bl => bl.BookingLineSpecification)
.ThenInclude(bls => bls.UnitType)
.Include(booking => booking.BookingLine)
.ThenInclude(bl => bl.BookingLineAddress)
.ThenInclude(bla => bla.Country)
.Include(booking => booking.BookingLine)
.ThenInclude(bl => bl.BookingLineAddress)
.ThenInclude(bla => bla.PostalCode)
.Include(booking => booking.BookingLine)
.ThenInclude(bl => bl.BookingLineSpecification)
.ThenInclude(bls => bls.RelBookingLineSpecificationSalesInvoiceDetail)
.ThenInclude(Rel => Rel.SalesInvoiceDetail);
< /code>

Сам запрос SQL, который приостановлен на сервере MSSQL, становится: < /p>

(@__GetCustomerTarget_Code_0 bigint,@__from_1 datetime2(7),@__to_2 datetime2(7),@__code_3 varchar(255))
SELECT [booking].[Id],
[booking].[booking_provider_id],
[booking].[booking_status_id],
[booking].[consignee_name],
[booking].[consignee_number],
[booking].[created_at],
[booking].[created_by],
[booking].[currency_code],
[booking].[deliveryNumber],
[booking].[description],
[booking].[destroyed_at],
[booking].[destroyed_by],
[booking].[inter_company_number],
[booking].[invoicee_name],
[booking].[invoicee_number],
[booking].[is_create],
[booking].[location_id],
[booking].[location_name],
[booking].[maturity_level_id],
[booking].[number],
[booking].[order_number],
[booking].[provider_key],
[booking].[shipment_id],
[booking].[system_responsible_id],
[booking].[updated_at],
[booking].[updated_by]
FROM [Integration].[booking] AS [booking]
WHERE ((([booking].[consignee_number] = @__GetCustomerTarget_Code_0)
AND ([booking].[created_at] >= @__from_1))
AND ([booking].[created_at] < @__to_2))
AND EXISTS (
SELECT 1
FROM [Integration].[booking_line] AS
WHERE EXISTS (
SELECT 1
FROM [Integration].[booking_line_specification] AS [c]
WHERE ([c].[currency_code] = @__code_3) AND (.[Id] = [c].[booking_line_id])) AND ([booking].[Id] = .[booking_id]))
< /code>

Этот оператор выполняется за ноль секунд (но некоторые милисекунды) при выполнении в MSSQL Management Studio.
Однако приложение C# испытывает тайм -аут. < /p>

Когда я использую внутренние инструменты на MSSQL, я вижу, что сплайт приостановлен и навсегда ожидает.
Однако причина, по -видимому, изменяется. В начале это из -за IO_COMPLETION. Тогда это sos_yield_ ~ что -то и, наконец, pageiolatch_sh
Это окончательное состояние оно остается в < /p>

i, в течение меня, не может выяснить, почему MSSQL может выполнить запрос без проблем. Или что -то еще, что мне не хватает полностью. < /P>

Я просто не идеи. Может ли кто -нибудь указать мне в направлении, которое может помочь? Я пытался включить Lazy Mode, а не использовать включение. Я попытался удалить ленивые нагрузки и включать, просто чтобы посмотреть, смогу ли я вернуть бронирование. < /p>

Нет. MSSQL, похоже, отказывается от EF Core от использования индексов. < /p>

Дело в том, что запрос висит только тогда, когда я предоставляю определенные параметры.
Другие параметры работают просто отлично. В частности, если я предоставляю разные валютные коды, это, похоже, имеет значение для MSSQL, если запрос будет приостановлен или нет. < /p>

Я полностью перестроил индексы, необходимые для эффективного выполнения этого запроса в соответствии с планом выполнения в MSSQL Management Studio. < /p>

Любая дополнительная информация, которая может потребоваться, пожалуйста, дайте мне знать, и я увижу, что я могу сделать, с лучшими в моих усилиях. ПЛАН: < /p>

< /p>

Обновление 2:
я хотел бы указать, что в настоящее время используется для разработки, и, следовательно, в этом программном обеспечении, и, следовательно, в этом программном обеспечении. < /p>

, поскольку мой, по -видимому, неопытный разум может контролировать что угодно :) < /p>

Таким образом, любые предложения о том, как лучше отладить проблему, или запросы на больше И, скорее всего, будет возможно, особенно если намекает на то, как предоставить его вам! (И я) < /p>

sql profiler: открытие соединения с db: < /p>

set quoted_identifier on
set arithabort on
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed


Подробнее здесь: https://stackoverflow.com/questions/541 ... ent-studio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»