powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
25 сообщений из 72, страница 2 из 3
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756455
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это ни очём не говорит. разве у вас были активные изменения в используемых этой ХП таблицах?
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756504
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneэто ни очём не говорит. разве у вас были активные изменения в используемых этой ХП таблицах?

Что значит "активные изменения" ?

Делаю так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
insert into Transactions select ProductId,OrderLineId,TransactionDate,ShippedDate from Transactions
GO

EXEC	[dbo].[GetTransactionsByShipDate] NULL
GO

declare @shipdate datetime = getdate()
EXEC	[dbo].[GetTransactionsByShipDate] @shipdate
GO

SELECT * 
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) 
WHERE cacheobjtype='Compiled Plan' 
		and objtype='Proc' 
		and dbid = DB_ID('ConsoleApplication9.Production')
ORDER BY text DESC;



И все равно один план получается.

Хватит фантазировать, читайте BOL. Там четко расписано что и когда компилируется. И нет у ХП в SQL Server больше одного плана вообще никогда.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756518
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПример-то будет, приближённый к реальности?
Тебе реально приложение показать? Увы, NDA.
Или тебе помочь применить знания к твоей реальности?
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756521
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasskyANAПример-то будет, приближённый к реальности ?
Тебе реально приложение показать? Увы, NDA.
Или тебе помочь применить знания к твоей реальности?Выделил жирным, так понятнее?
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756525
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас один planguide в вашем запросе, потому что вы своих не создавали для него. о чём вам и указали, что planguides может быть много. идите саим читайте BOL
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756526
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять этот упоротый теоретик отжигает на форуме?
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756550
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneу вас один planguide в вашем запросе, потому что вы своих не создавали для него. о чём вам и указали, что planguides может быть много. идите саим читайте BOL
Что за бред? Хоть сто плангайдов создайте, а план у процедуры будет один.

Покажите пример с двумя планами в кеше для одной и той же процедуры. Любым способом.

Спорим на 10к рублей, что не получится?
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756556
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а причём тут кэш? мы говорим, что их много может быть и можно всегда заюзать тот, который нужен:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
--Create a procedure on which to define the plan guide.
IF OBJECT_ID(N'Sales.GetSalesOrderByCountry', N'P') IS NOT NULL
    DROP PROCEDURE Sales.GetSalesOrderByCountry;
GO
CREATE PROCEDURE Sales.GetSalesOrderByCountry 
    (@Country nvarchar(60))
AS
BEGIN
    SELECT *
    FROM Sales.SalesOrderHeader AS h 
    INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID
    INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID
    WHERE t.CountryRegionCode = @Country;
END
GO
--Create the plan guide.
EXEC sp_create_plan_guide N'Guide3',
    N'SELECT *
    FROM Sales.SalesOrderHeader AS h 
    INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID
    INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID
    WHERE t.CountryRegionCode = @Country',
    N'OBJECT',
    N'Sales.GetSalesOrderByCountry',
    NULL,
    N'OPTION (OPTIMIZE FOR (@Country = N''US''))';
GO
--Disable the plan guide.
EXEC sp_control_plan_guide N'DISABLE', N'Guide3';
GO
--Enable the plan guide.
EXEC sp_control_plan_guide N'ENABLE', N'Guide3';
GO
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756560
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAgandjustasпропущено...

Тебе реально приложение показать? Увы, NDA.
Или тебе помочь применить знания к твоей реальности?Выделил жирным, так понятнее?

Честно говоря нет. Что ты имеешь ввиду "приближенный к реальности"?

Лично я писал такую процедуру (с точностью до имен полей и таблиц) в 2007 году и после того как разобрался с кешем планов - переписывал на Linq.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756566
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneа причём тут кэш? мы говорим, что их много может быть и можно всегда заюзать тот, который нужен:

Специально для тебя цитирую с чего начался разговор, в который ты влез:

ЕвгенийВ Более того, у процедуры может быть стопицот планов, в зависимости от параметров, фрагментации индексов и того, с какой ноги встала сегодня жена Барака Обамы.

Про плангайды - ты не в тему влез, более того, несмотря на много плангайдов план у процедуры все равно будет один.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756575
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasskyANAпропущено...
Выделил жирным, так понятнее?

Честно говоря нет. Что ты имеешь ввиду "приближенный к реальности"?

Лично я писал такую процедуру (с точностью до имен полей и таблиц) в 2007 году и после того как разобрался с кешем планов - переписывал на Linq.Ну вот и вставь сюда объявление и кусок той процедуры, где у тебя случилась крайняя сложность.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756580
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAgandjustasпропущено...


Честно говоря нет. Что ты имеешь ввиду "приближенный к реальности"?

Лично я писал такую процедуру (с точностью до имен полей и таблиц) в 2007 году и после того как разобрался с кешем планов - переписывал на Linq.Ну вот и вставь сюда объявление и кусок той процедуры, где у тебя случилась крайняя сложность.

1) Было давно, кода не осталось.
2) Большая часть работы под NDA и нельзя на форумах выкладывать.
3) Что это изменит? Суть проблемы и решения не поменяется.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756589
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasskyANAпропущено...
Ну вот и вставь сюда объявление и кусок той процедуры, где у тебя случилась крайняя сложность.

1) Было давно, кода не осталось.
2) Большая часть работы под NDA и нельзя на форумах выкладывать.
3) Что это изменит? Суть проблемы и решения не поменяется.Понятно, слив.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756594
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAgandjustasпропущено...


1) Было давно, кода не осталось.
2) Большая часть работы под NDA и нельзя на форумах выкладывать.
3) Что это изменит? Суть проблемы и решения не поменяется.Понятно, слив.
Если тебе от этого легче, можешь так считать.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756608
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasskyANAпропущено...
Понятно, слив.
Если тебе от этого легче, можешь так считать.Да мне от этого также. Как я не встречал тех сложностей, о которых ты тут фантазируешь, так и не встречу похоже
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756620
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasАлексей ККак? Кроме обёртки над LINQ-провайдером способов не вижу.
Кроме обертки и нет способов, но у меня обертка генерируется в AOP и подсовываться вместо IDbSet. То есть в коде приложения вообще никаких изменений.У меня тоже.

gandjustasАлексей Кпропущено...
В MSSQL есть View и Inline UDF.

И? композиции то нет, ты же не можешь написать так:
Код: sql
1.
select * from MakeProjection(FilterByX(FilterByY(y))

.
А в Linq ты это напишешь еще красивее:
Код: c#
1.
2.
3.
4.
ctx.Table
   .FilterByY(y)
   .FilterByX(x)
   .MakeProjection()

В SQL это не так красиво, но результат тот же:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
    A + B C
from
(
    select *
    from 
    (
        select *
        from T
        where A = @a
    ) src
    where B = @b
) src
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756668
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИ? композиции то нет, ты же не можешь написать так:
Код: sql
1.
select * from MakeProjection(FilterByX(FilterByY(y))

.
А в Linq ты это напишешь еще красивее:
Код: c#
1.
2.
3.
4.
ctx.Table
   .FilterByY(y)
   .FilterByX(x)
   .MakeProjection()

В SQL это не так красиво, но результат тот же:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
    A + B C
from
(
    select *
    from 
    (
        select *
        from T
        where A = @a
    ) src
    where B = @b
) src

[/quot]

И все равно не то, потому что повторной используемости кусков запросов нет. Тебе все равно надо весь запрос в одном месте выписать. А linq позволяет собирать его по кускам собирать, причем в зависимости от условий.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756669
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAgandjustasпропущено...

Если тебе от этого легче, можешь так считать.Да мне от этого также. Как я не встречал тех сложностей, о которых ты тут фантазируешь, так и не встречу похоже

Да у тебя и монга надежно работает. Я не сомневаюсь что у тебя сложностей с планами никогда не было и не будет.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756690
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasИ все равно не то, потому что повторной используемости кусков запросов нет.Есть:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create view V as select A, B from T where .....
go

select A+B C from V where ....
go

select A-B D from V where ....
go

Тут даже наследование через * можно организовать. :-)
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756691
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasskyANAпропущено...
Да мне от этого также. Как я не встречал тех сложностей, о которых ты тут фантазируешь, так и не встречу похоже

Да у тебя и монга надежно работает. Я не сомневаюсь что у тебя сложностей с планами никогда не было и не будет.А какие могут быть сложности с планами?

Смотришь план, делаешь выводы, проводишь необходимую оптимизацию, смотришь новый план. Всё вроде просто. Вот только просто не значит тривиально.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756692
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasА linq позволяет собирать его по кускам собирать, причем в зависимости от условий .sp_executesql, как было предложено выше.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756697
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во времена ЮКОСа не было LINQ, обходились вьюхами обычными и материализованными, хранимками и функциями, денормализацией, индексами и прочими "олдскульными" вещами.
Когда писали системы онлайн бронирования, то LINQ (IQueryable) тупо не использовался, потому как под каждый сервис стороннего поставщика писать IQueryProvider - это не самое лучшее решение.
Ну и обходились по привычке "олдскульными" вещами.

А сейчас, сам понимаешь, MongoDB.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756749
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА сейчас, сам понимаешь, MongoDB.

Медленный он, только для специфичных весчей.
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756787
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAА сейчас, сам понимаешь, MongoDB.

Медленный он, только для специфичных весчей.Гы. И где же он медленный?
...
Рейтинг: 0 / 0
Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
    #38756804
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAГы. И где же он медленный?

На запросы отчёты, например, финансовые делать из монги, лучше пойти и убиться.
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 2 из 3
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Оптимизация высоконагруженных ASP.NET приложений, работающих с SQL Server с помощью LINQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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