powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Удаление строк из датасет
14 сообщений из 64, страница 3 из 3
Удаление строк из датасет
    #39296030
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЕвгенийВ,

SQL - это и есть математическое обозначение
Можно еще как то так.
ДРАКОН
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296038
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиИзопропил,
++ в один це особенно ))
я ж про SQL )

а что касается мышководства - как визуально рисовать коррелированные подзапросы,
иерархические запросы, оконные функции ?
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296056
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
авторкак визуально рисовать коррелированные подзапросы,
иерархические запросы, оконные функции
гм, не знаю... никогда этим не занимался, хотя вру.. иногда бывало еб--щь по форме что бы лоадер возбудить не более..
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296058
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
а что касается мышководства - как визуально рисовать коррелированные подзапросы,
иерархические запросы, оконные функции ?
А в чем проблема? Выносишь тот же коррелированный подзапрос в отдельный блок и потом подсовываешь в нужном месте.
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296066
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВыносишь тот же коррелированный подзапрос в отдельный блок и потом подсовываешь в нужном месте.
а корреляции как отображать?

и тета-соединения?
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296145
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dima TCat2Тут достаточно убрать всю лабуду из проверки, так как суррогатный первичный ключ по полю TestId не меняется никогда
Смысл лабуды в том что она проверяет что текущее состояние у записи такое же как закэшировано на клиенте, т.е. проверка что между чтением и записью не было изменения другим клиентом. Если это не нужно, то надо отключать. Я тут 19541675 спрашивал как это проверяторство по дефолту отключить, никто не подсказал.
Я понимаю в чем тут смысл и это было бы оправдано, если бы у таблицы не был бы уникального ключа по автоинкремененту, но предложение ввести поле timespan вполне себе в духе любиетелей EF, не осиливших реляционную теорию
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296159
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ИзопропилЕвгенийВВыносишь тот же коррелированный подзапрос в отдельный блок и потом подсовываешь в нужном месте.
а корреляции как отображать?

и тета-соединения?
Что не так с тета?
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296162
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Dima Tпропущено...

Смысл лабуды в том что она проверяет что текущее состояние у записи такое же как закэшировано на клиенте, т.е. проверка что между чтением и записью не было изменения другим клиентом. Если это не нужно, то надо отключать. Я тут 19541675 спрашивал как это проверяторство по дефолту отключить, никто не подсказал.
Я понимаю в чем тут смысл и это было бы оправдано, если бы у таблицы не был бы уникального ключа по автоинкремененту, но предложение ввести поле timespan вполне себе в духе любиетелей EF, не осиливших реляционную теорию
Теплое с мягким не путай. Повторяю: это надо для контроля содержимого записи, а не для ее поиска. Для реализации оптимистической блокировки .
Пример:
Код: plaintext
1.
2.
3.
4.
Юзер А прочитал поле Text записи с ID = 1
Юзер Б прочитал поле Text записи с ID = 1
Юзер А изменил поле Text и сохранил
Юзер Б изменил поле Text и сохранил
Что стало в поле Text? Нормально ли то что Б затер результат работы А? Понял зачем лабуда?
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296183
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Что не так с тета?
а условие чуть сложнее - и приплыли?
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296223
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилCat2Что не так с тета?
а условие чуть сложнее - и приплыли?
Если ssms не может - не значит, что более продивинутые инструменты не могут.
Но я все равно не о таком визуальном редакторе.
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296244
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ИзопропилCat2Что не так с тета?
а условие чуть сложнее - и приплыли?
Я не утверждаю что можно совсем обойтись без напильника. Хотя тета - это все же экзотика
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296318
Перегонщик перекупки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Dima Tпропущено...

Смысл лабуды в том что она проверяет что текущее состояние у записи такое же как закэшировано на клиенте, т.е. проверка что между чтением и записью не было изменения другим клиентом. Если это не нужно, то надо отключать. Я тут 19541675 спрашивал как это проверяторство по дефолту отключить, никто не подсказал.
Я понимаю в чем тут смысл (1) и это было бы оправдано, если бы у таблицы не был бы уникального ключа по автоинкремененту , но (2) предложение ввести поле timespan вполне себе в духе любиетелей EF, не осиливших реляционную теорию

1) как это вяжется с optimistic locking?
2) это нормальное предложение, "реляционная теория" тут не причем
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296751
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Алексей К,

Вот у этого, автосгененированного, и нормального точно отличаются

Код: sql
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.
UPDATE    DgnTest
SET              TypeId = @TypeId, Sort = @Sort, Test = @Test, Description = @Description, P0 = @P0, V0 = @V0, P1 = @P1, V1 = @V1, P2 = @P2, V2 = @V2, P3 = @P3, V3 = @V3, 
                      Result = @Result, ResultText = @ResultText, helpdesk = @helpdesk, helpdesk2 = @helpdesk2, Info = @Info, Func = @Func, Did = @Did, UserInfo = @UserInfo, 
                      Server = @Server, Local = @Local, UserHelpdesk = @UserHelpdesk, Active = @Active, BreefError = @BreefError, Recomendation = @Recomendation, Auto = @Auto, 
                      TestGroup = @TestGroup
WHERE     (TestId = @Original_TestId) AND (TypeId = @Original_TypeId) AND (@IsNull_Sort = 1 AND Sort IS NULL OR
                      Sort = @Original_Sort) AND (@IsNull_Test = 1 AND Test IS NULL OR
                      Test = @Original_Test) AND (@IsNull_Description = 1 AND Description IS NULL OR
                      Description = @Original_Description) AND (@IsNull_P0 = 1 AND P0 IS NULL OR
                      P0 = @Original_P0) AND (@IsNull_V0 = 1 AND V0 IS NULL OR
                      V0 = @Original_V0) AND (@IsNull_P1 = 1 AND P1 IS NULL OR
                      P1 = @Original_P1) AND (@IsNull_V1 = 1 AND V1 IS NULL OR
                      V1 = @Original_V1) AND (@IsNull_P2 = 1 AND P2 IS NULL OR
                      P2 = @Original_P2) AND (@IsNull_V2 = 1 AND V2 IS NULL OR
                      V2 = @Original_V2) AND (@IsNull_P3 = 1 AND P3 IS NULL OR
                      P3 = @Original_P3) AND (@IsNull_V3 = 1 AND V3 IS NULL OR
                      V3 = @Original_V3) AND (Result = @Original_Result) AND (@IsNull_ResultText = 1 AND ResultText IS NULL OR
                      ResultText = @Original_ResultText) AND (@IsNull_helpdesk = 1 AND helpdesk IS NULL OR
                      helpdesk = @Original_helpdesk) AND (@IsNull_helpdesk2 = 1 AND helpdesk2 IS NULL OR
                      helpdesk2 = @Original_helpdesk2) AND (Info = @Original_Info) AND (@IsNull_Func = 1 AND Func IS NULL OR
                      Func = @Original_Func) AND (Did = @Original_Did) AND (UserInfo = @Original_UserInfo) AND (Server = @Original_Server) AND (Local = @Original_Local) AND 
                      (@IsNull_UserHelpdesk = 1 AND UserHelpdesk IS NULL OR
                      UserHelpdesk = @Original_UserHelpdesk) AND (Active = @Original_Active) AND (@IsNull_BreefError = 1 AND BreefError IS NULL OR
                      BreefError = @Original_BreefError) AND (@IsNull_Recomendation = 1 AND Recomendation IS NULL OR
                      Recomendation = @Original_Recomendation) AND (Auto = @Original_Auto) AND (@IsNull_TestGroup = 1 AND TestGroup IS NULL OR
                      TestGroup = @Original_TestGroup)

Как выше было правильно замечено, использовать timestamp для оптимистичной блокировки удобнее, чем применять множество дополнительных сравнений. Но даже при таком раскладе будет [Clustered]IndexSeek по полю TestId (если я правильно понял его назначение), дополнительные условия вряд ли скажутся на статистике выполнения запроса.
...
Рейтинг: 0 / 0
Удаление строк из датасет
    #39296755
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Сгенерированный запрос
Код: sql
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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
exec sp_executesql N'
SELECT 
    [Limit5].[ID] AS [ID], 
    [Limit5].[Subject] AS [Subject], 
    [Limit5].[Caption1] AS [Caption], 
    [Limit5].[C1] AS [C1], 
    [Limit5].[ID1] AS [ID1], 
    [Limit5].[C2] AS [C2], 
    [Limit5].[C3] AS [C3], 
    [Limit5].[C4] AS [C4], 
    [Limit5].[C5] AS [C5], 
    [Limit5].[IsPrivate] AS [IsPrivate], 
    [Limit5].[CreateDate] AS [CreateDate], 
    [Limit5].[LastChangeDate] AS [LastChangeDate], 
    [Limit5].[ID3] AS [ID2], 
    [Limit5].[C6] AS [C6], 
    [Limit5].[C7] AS [C7], 
    [Limit5].[ID2] AS [ID3], 
    [Limit5].[C8] AS [C8], 
    [Limit5].[C9] AS [C9], 
    [Limit5].[C10] AS [C10], 
    [Limit5].[C11] AS [C11], 
    [Limit5].[RecipientReadDate] AS [RecipientReadDate], 
    [Limit5].[C12] AS [C12], 
    [Limit5].[PlanCompleteDate] AS [PlanCompleteDate], 
    [Limit5].[C13] AS [C13], 
    [Limit5].[Caption] AS [Caption1], 
    [Limit5].[C14] AS [C14], 
    [Limit5].[C15] AS [C15], 
    [Limit5].[C16] AS [C16], 
    [Limit5].[ContentText] AS [ContentText], 
    [Limit5].[C17] AS [C17]
    FROM ( SELECT TOP (1) 
        [Project13].[ID] AS [ID], 
        [Project13].[Subject] AS [Subject], 
        [Project13].[PlanCompleteDate] AS [PlanCompleteDate], 
        [Project13].[RecipientReadDate] AS [RecipientReadDate], 
        [Project13].[CreateDate] AS [CreateDate], 
        [Project13].[LastChangeDate] AS [LastChangeDate], 
        [Project13].[ContentText] AS [ContentText], 
        [Project13].[IsPrivate] AS [IsPrivate], 
        [Project13].[ID2] AS [ID1], 
        [Project13].[ID3] AS [ID2], 
        [Project13].[ID4] AS [ID3], 
        [Project13].[Caption] AS [Caption], 
        [Project13].[Caption1] AS [Caption1], 
        CASE WHEN ([Project13].[SenderPersID] = @p__linq__1) THEN cast(1 as bit) WHEN ([Project13].[SenderPersID] <> @p__linq__1) THEN cast(0 as bit) END AS [C1], 
        [Project13].[LastName] + N'' '' + [Project13].[FirstName] + N'' '' + [Project13].[PatrName] + N'' ('' +  CAST( [Project13].[TabNum] AS nvarchar(max)) + N'')'' AS [C2], 
        CASE WHEN ([Project13].[ID2] = @p__linq__2) THEN cast(1 as bit) WHEN ([Project13].[ID2] <> @p__linq__2) THEN cast(0 as bit) END AS [C3], 
        [Project13].[LastName] + N'' '' + SUBSTRING([Project13].[FirstName], 0 + 1, 1) + SUBSTRING([Project13].[PatrName], 0 + 1, 1) + N'' ('' +  CAST( [Project13].[TabNum] AS nvarchar(max)) + N'')'' AS [C4], 
        CASE WHEN ([Project13].[ID2] = @p__linq__3) THEN cast(1 as bit) WHEN ([Project13].[ID2] <> @p__linq__3) THEN cast(0 as bit) END AS [C5], 
        [Project13].[LastName2] + N'' '' + [Project13].[FirstName2] + N'' '' + [Project13].[PatrName2] + N'' ('' +  CAST( [Project13].[TabNum2] AS nvarchar(max)) + N'')'' AS [C6], 
        CASE WHEN ([Project13].[ID4] = @p__linq__4) THEN cast(1 as bit) WHEN ([Project13].[ID4] <> @p__linq__4) THEN cast(0 as bit) END AS [C7], 
        [Project13].[LastName1] + N'' '' + [Project13].[FirstName1] + N'' '' + [Project13].[PatrName1] + N'' ('' +  CAST( [Project13].[TabNum1] AS nvarchar(max)) + N'')'' AS [C8], 
        CASE WHEN ([Project13].[ID3] = @p__linq__5) THEN cast(1 as bit) WHEN ([Project13].[ID3] <> @p__linq__5) THEN cast(0 as bit) END AS [C9], 
        [Project13].[LastName1] + N'' '' + SUBSTRING([Project13].[FirstName1], 0 + 1, 1) + SUBSTRING([Project13].[PatrName1], 0 + 1, 1) + N'' ('' +  CAST( [Project13].[TabNum1] AS nvarchar(max)) + N'')'' AS [C10], 
        CASE WHEN ([Project13].[ID3] = @p__linq__6) THEN cast(1 as bit) WHEN ([Project13].[ID3] <> @p__linq__6) THEN cast(0 as bit) END AS [C11], 
        CASE WHEN (CASE WHEN (([Project13].[RecipientPersID] = @p__linq__7) AND ([Project13].[SenderPersID] <> @p__linq__8) AND ([Project13].[RecipientReadDate] IS NULL)) THEN cast(1 as bit) WHEN ( NOT (([Project13].[RecipientPersID] = @p__linq__7) AND ([Project13].[SenderPersID] <> @p__linq__8) AND ([Project13].[RecipientReadDate] IS NULL))) THEN cast(0 as bit) END IS NULL) THEN cast(0 as bit) WHEN (([Project13].[RecipientPersID] = @p__linq__7) AND ([Project13].[SenderPersID] <> @p__linq__8) AND ([Project13].[RecipientReadDate] IS NULL)) THEN cast(1 as bit) WHEN ( NOT (([Project13].[RecipientPersID] = @p__linq__7) AND ([Project13].[SenderPersID] <> @p__linq__8) AND ([Project13].[RecipientReadDate] IS NULL))) THEN cast(0 as bit) END AS [C12], 
        CASE WHEN (((CASE WHEN (convert (datetime2, convert(varchar(255), [Project13].[PlanCompleteDate], 102) ,  102) IS NULL) THEN @p__linq__9 ELSE convert (datetime2, convert(varchar(255), [Project13].[PlanCompleteDate], 102) ,  102) END) <= (convert (datetime2, convert(varchar(255), SysDateTime(), 102) ,  102))) AND ([Project13].[RecipientPersID1] IS NOT NULL) AND ([Project13].[IsActive] = 1)) THEN cast(1 as bit) WHEN ( NOT (((CASE WHEN (convert (datetime2, convert(varchar(255), [Project13].[PlanCompleteDate], 102) ,  102) IS NULL) THEN @p__linq__9 ELSE convert (datetime2, convert(varchar(255), [Project13].[PlanCompleteDate], 102) ,  102) END) <= (convert (datetime2, convert(varchar(255), SysDateTime(), 102) ,  102))) AND ([Project13].[RecipientPersID1] IS NOT NULL) AND ([Project13].[IsActive] = 1))) THEN cast(0 as bit) END AS [C13], 
        CASE WHEN (([Project13].[RecipientPersID1] IS NOT NULL) AND ([Project13].[IsActive] = 1)) THEN cast(1 as bit) WHEN ( NOT (([Project13].[RecipientPersID1] IS NOT NULL) AND ([Project13].[IsActive] = 1))) THEN cast(0 as bit) END AS [C14], 
        CASE WHEN ([Project13].[CreateDate2] IS NULL) THEN [Project13].[CreateDate1] ELSE [Project13].[CreateDate3] END AS [C15], 
        CASE WHEN ([Project13].[C1] IS NULL) THEN [Project13].[CreateDate1] ELSE [Project13].[C2] END AS [C16], 
        CASE WHEN ( EXISTS (SELECT 
            1 AS [C1]
            FROM [dbo].[message_attachments] AS [Extent37]
            WHERE [Project13].[ID1] = [Extent37].[MsgID]
        )) THEN cast(1 as bit) ELSE cast(0 as bit) END AS [C17]
        FROM ( SELECT 
            [Project11].[ID] AS [ID], 
            [Project11].[Subject] AS [Subject], 
            [Project11].[PlanCompleteDate] AS [PlanCompleteDate], 
            [Project11].[ID1] AS [ID1], 
            [Project11].[SenderPersID] AS [SenderPersID], 
            [Project11].[RecipientPersID] AS [RecipientPersID], 
            [Project11].[RecipientReadDate] AS [RecipientReadDate], 
            [Project11].[CreateDate] AS [CreateDate], 
            [Project11].[LastChangeDate] AS [LastChangeDate], 
            [Project11].[ContentText] AS [ContentText], 
            [Project11].[IsPrivate] AS [IsPrivate], 
            [Project11].[ID2] AS [ID2], 
            [Project11].[LastName] AS [LastName], 
            [Project11].[FirstName] AS [FirstName], 
            [Project11].[PatrName] AS [PatrName], 
            [Project11].[TabNum] AS [TabNum], 
            [Project11].[ID3] AS [ID3], 
            [Project11].[LastName1] AS [LastName1], 
            [Project11].[FirstName1] AS [FirstName1], 
            [Project11].[PatrName1] AS [PatrName1], 
            [Project11].[TabNum1] AS [TabNum1], 
            [Project11].[ID4] AS [ID4], 
            [Project11].[LastName2] AS [LastName2], 
            [Project11].[FirstName2] AS [FirstName2], 
            [Project11].[PatrName2] AS [PatrName2], 
            [Project11].[TabNum2] AS [TabNum2], 
            [Project11].[Caption] AS [Caption], 
            [Project11].[IsActive] AS [IsActive], 
            [Project11].[Caption1] AS [Caption1], 
            [Project11].[RecipientPersID1] AS [RecipientPersID1], 
            [Project11].[CreateDate1] AS [CreateDate1], 
            [Project11].[CreateDate2] AS [CreateDate2], 
            [Project11].[CreateDate3] AS [CreateDate3], 
            [Project11].[C1] AS [C1], 
            (SELECT 
                MAX([Project12].[CreateDate]) AS [A1]
                FROM ( SELECT 
                    [Extent33].[ID] AS [ID], 
                    [Join28].[ID1] AS [ID1], 
                    [Join28].[CreateDate] AS [CreateDate], 
                    [Join28].[ID2] AS [ID2], 
                    [Join28].[ID3] AS [ID3]
                    FROM  [dbo].[message_comments] AS [Extent33]
                    LEFT OUTER JOIN  (SELECT [Extent34].[ID] AS [ID1], [Extent34].[CreateDate] AS [CreateDate], [Extent35].[ID] AS [ID2], [Extent36].[ID] AS [ID3]
                        FROM   [dbo].[message] AS [Extent34]
                        LEFT OUTER JOIN [dbo].[message_comments] AS [Extent35] ON [Extent34].[ID] = [Extent35].[ID]
                        LEFT OUTER JOIN [dbo].[message_task] AS [Extent36] ON [Extent34].[ID] = [Extent36].[ID] ) AS [Join28] ON [Extent33].[ID] = [Join28].[ID2]
                    WHERE [Project11].[ID] = [Extent33].[TaskID]
                )  AS [Project12]) AS [C2]
            FROM ( SELECT 
                [Project9].[ID] AS [ID], 
                [Project9].[Subject] AS [Subject], 
                [Project9].[PlanCompleteDate] AS [PlanCompleteDate], 
                [Project9].[ID1] AS [ID1], 
                [Project9].[SenderPersID] AS [SenderPersID], 
                [Project9].[RecipientPersID] AS [RecipientPersID], 
                [Project9].[RecipientReadDate] AS [RecipientReadDate], 
                [Project9].[CreateDate] AS [CreateDate], 
                [Project9].[LastChangeDate] AS [LastChangeDate], 
                [Project9].[ContentText] AS [ContentText], 
                [Project9].[IsPrivate] AS [IsPrivate], 
                [Project9].[ID2] AS [ID2], 
                [Project9].[LastName] AS [LastName], 
                [Project9].[FirstName] AS [FirstName], 
                [Project9].[PatrName] AS [PatrName], 
                [Project9].[TabNum] AS [TabNum], 
                [Project9].[ID3] AS [ID3], 
                [Project9].[LastName1] AS [LastName1], 
                [Project9].[FirstName1] AS [FirstName1], 
                [Project9].[PatrName1] AS [PatrName1], 
                [Project9].[TabNum1] AS [TabNum1], 
                [Project9].[ID4] AS [ID4], 
                [Project9].[LastName2] AS [LastName2], 
                [Project9].[FirstName2] AS [FirstName2], 
                [Project9].[PatrName2] AS [PatrName2], 
                [Project9].[TabNum2] AS [TabNum2], 
                [Project9].[Caption] AS [Caption], 
                [Project9].[IsActive] AS [IsActive], 
                [Project9].[Caption1] AS [Caption1], 
                [Project9].[RecipientPersID1] AS [RecipientPersID1], 
                [Project9].[CreateDate1] AS [CreateDate1], 
                [Project9].[CreateDate2] AS [CreateDate2], 
                [Project9].[CreateDate3] AS [CreateDate3], 
                (SELECT 
                    MAX([Project10].[CreateDate]) AS [A1]
                    FROM ( SELECT 
                        [Extent29].[ID] AS [ID], 
                        [Join25].[ID4] AS [ID1], 
                        [Join25].[CreateDate] AS [CreateDate], 
                        [Join25].[ID5] AS [ID2], 
                        [Join25].[ID6] AS [ID3]
                        FROM  [dbo].[message_comments] AS [Extent29]
                        LEFT OUTER JOIN  (SELECT [Extent30].[ID] AS [ID4], [Extent30].[CreateDate] AS [CreateDate], [Extent31].[ID] AS [ID5], [Extent32].[ID] AS [ID6]
                            FROM   [dbo].[message] AS [Extent30]
                            LEFT OUTER JOIN [dbo].[message_comments] AS [Extent31] ON [Extent30].[ID] = [Extent31].[ID]
                            LEFT OUTER JOIN [dbo].[message_task] AS [Extent32] ON [Extent30].[ID] = [Extent32].[ID] ) AS [Join25] ON [Extent29].[ID] = [Join25].[ID5]
                        WHERE [Project9].[ID] = [Extent29].[TaskID]
                    )  AS [Project10]) AS [C1]
                FROM ( SELECT 
                    [Project7].[ID] AS [ID], 
                    [Project7].[Subject] AS [Subject], 
                    [Project7].[PlanCompleteDate] AS [PlanCompleteDate], 
                    [Project7].[ID1] AS [ID1], 
                    [Project7].[SenderPersID] AS [SenderPersID], 
                    [Project7].[RecipientPersID] AS [RecipientPersID], 
                    [Project7].[RecipientReadDate] AS [RecipientReadDate], 
                    [Project7].[CreateDate] AS [CreateDate], 
                    [Project7].[LastChangeDate] AS [LastChangeDate], 
                    [Project7].[ContentText] AS [ContentText], 
                    [Project7].[IsPrivate] AS [IsPrivate], 
                    [Project7].[ID2] AS [ID2], 
                    [Project7].[LastName] AS [LastName], 
                    [Project7].[FirstName] AS [FirstName], 
                    [Project7].[PatrName] AS [PatrName], 
                    [Project7].[TabNum] AS [TabNum], 
                    [Project7].[ID3] AS [ID3], 
                    [Project7].[LastName1] AS [LastName1], 
                    [Project7].[FirstName1] AS [FirstName1], 
                    [Project7].[PatrName1] AS [PatrName1], 
                    [Project7].[TabNum1] AS [TabNum1], 
                    [Project7].[ID4] AS [ID4], 
                    [Project7].[LastName2] AS [LastName2], 
                    [Project7].[FirstName2] AS [FirstName2], 
                    [Project7].[PatrName2] AS [PatrName2], 
                    [Project7].[TabNum2] AS [TabNum2], 
                    [Project7].[Caption] AS [Caption], 
                    [Project7].[IsActive] AS [IsActive], 
                    [Project7].[Caption1] AS [Caption1], 
                    [Project7].[RecipientPersID1] AS [RecipientPersID1], 
                    [Project7].[CreateDate1] AS [CreateDate1], 
                    [Project7].[CreateDate2] AS [CreateDate2], 
                    [Limit4].[ID] AS [ID5], 
                    [Join22].[ID7] AS [ID6], 
                    [Join22].[CreateDate] AS [CreateDate3], 
                    [Join22].[ID8] AS [ID7], 
                    [Join22].[ID9] AS [ID8]
                    FROM    (SELECT 
                        [Project5].[ID] AS [ID], 
                        [Project5].[Subject] AS [Subject], 
                        [Project5].[PlanCompleteDate] AS [PlanCompleteDate], 
                        [Project5].[ID1] AS [ID1], 
                        [Project5].[SenderPersID] AS [SenderPersID], 
                        [Project5].[RecipientPersID] AS [RecipientPersID], 
                        [Project5].[RecipientReadDate] AS [RecipientReadDate], 
                        [Project5].[CreateDate] AS [CreateDate], 
                        [Project5].[LastChangeDate] AS [LastChangeDate], 
                        [Project5].[ContentText] AS [ContentText], 
                        [Project5].[IsPrivate] AS [IsPrivate], 
                        [Project5].[ID2] AS [ID2], 
                        [Project5].[LastName] AS [LastName], 
                        [Project5].[FirstName] AS [FirstName], 
                        [Project5].[PatrName] AS [PatrName], 
                        [Project5].[TabNum] AS [TabNum], 
                        [Project5].[ID3] AS [ID3], 
                        [Project5].[LastName1] AS [LastName1], 
                        [Project5].[FirstName1] AS [FirstName1], 
                        [Project5].[PatrName1] AS [PatrName1], 
                        [Project5].[TabNum1] AS [TabNum1], 
                        [Project5].[ID4] AS [ID4], 
                        [Project5].[LastName2] AS [LastName2], 
                        [Project5].[FirstName2] AS [FirstName2], 
                        [Project5].[PatrName2] AS [PatrName2], 
                        [Project5].[TabNum2] AS [TabNum2], 
                        [Project5].[Caption] AS [Caption], 
                        [Project5].[IsActive] AS [IsActive], 
                        [Project5].[Caption1] AS [Caption1], 
                        [Project5].[RecipientPersID1] AS [RecipientPersID1], 
                        [Project5].[CreateDate1] AS [CreateDate1], 
                        [Limit3].[ID] AS [ID5], 
                        [Join17].[ID10] AS [ID6], 
                        [Join17].[CreateDate] AS [CreateDate2], 
                        [Join17].[ID11] AS [ID7], 
                        [Join17].[ID12] AS [ID8]
                        FROM    (SELECT 
                            [Project3].[ID] AS [ID], 
                            [Project3].[ProjectID] AS [ProjectID], 
                            [Project3].[Subject] AS [Subject], 
                            [Project3].[PlanCompleteDate] AS [PlanCompleteDate], 
                            [Project3].[ID1] AS [ID1], 
                            [Project3].[SenderPersID] AS [SenderPersID], 
                            [Project3].[RecipientPersID] AS [RecipientPersID], 
                            [Project3].[RecipientReadDate] AS [RecipientReadDate], 
                            [Project3].[CreateDate] AS [CreateDate], 
                            [Project3].[LastChangeDate] AS [LastChangeDate], 
                            [Project3].[ContentText] AS [ContentText], 
                            [Project3].[IsPrivate] AS [IsPrivate], 
                            [Project3].[ID2] AS [ID2], 
                            [Project3].[LastName] AS [LastName], 
                            [Project3].[FirstName] AS [FirstName], 
                            [Project3].[PatrName] AS [PatrName], 
                            [Project3].[TabNum] AS [TabNum], 
                            [Project3].[ID3] AS [ID3], 
                            [Project3].[LastName1] AS [LastName1], 
                            [Project3].[FirstName1] AS [FirstName1], 
                            [Project3].[PatrName1] AS [PatrName1], 
                            [Project3].[TabNum1] AS [TabNum1], 
                            [Project3].[ID4] AS [ID4], 
                            [Project3].[LastName2] AS [LastName2], 
                            [Project3].[FirstName2] AS [FirstName2], 
                            [Project3].[PatrName2] AS [PatrName2], 
                            [Project3].[TabNum2] AS [TabNum2], 
                            [Extent12].[Caption] AS [Caption], 
                            [Extent12].[IsActive] AS [IsActive], 
                            [Extent13].[ID] AS [ID5], 
                            [Extent13].[Caption] AS [Caption1], 
                            [Join12].[ID13] AS [ID6], 
                            [Join12].[RecipientPersID] AS [RecipientPersID1], 
                            [Join12].[CreateDate] AS [CreateDate1], 
                            [Join12].[ID14] AS [ID7], 
                            [Join12].[ID15] AS [ID8]
                            FROM      (SELECT 
                                [Project1].[ID] AS [ID], 
                                [Project1].[ProjectID] AS [ProjectID], 
                                [Project1].[Subject] AS [Subject], 
                                [Project1].[PlanCompleteDate] AS [PlanCompleteDate], 
                                [Project1].[ID1] AS [ID1], 
                                [Project1].[SenderPersID] AS [SenderPersID], 
                                [Project1].[RecipientPersID] AS [RecipientPersID], 
                                [Project1].[RecipientReadDate] AS [RecipientReadDate], 
                                [Project1].[CreateDate] AS [CreateDate], 
                                [Project1].[LastChangeDate] AS [LastChangeDate], 
                                [Project1].[ContentText] AS [ContentText], 
                                [Project1].[IsPrivate] AS [IsPrivate], 
                                [Project1].[ID2] AS [ID2], 
                                [Project1].[LastName] AS [LastName], 
                                [Project1].[FirstName] AS [FirstName], 
                                [Project1].[PatrName] AS [PatrName], 
                                [Project1].[TabNum] AS [TabNum], 
                                [Project1].[ID3] AS [ID3], 
                                [Project1].[LastName1] AS [LastName1], 
                                [Project1].[FirstName1] AS [FirstName1], 
                                [Project1].[PatrName1] AS [PatrName1], 
                                [Project1].[TabNum1] AS [TabNum1], 
                                [Project1].[ID4] AS [ID4], 
                                [Project1].[LastName2] AS [LastName2], 
                                [Project1].[FirstName2] AS [FirstName2], 
                                [Project1].[PatrName2] AS [PatrName2], 
                                [Project1].[TabNum2] AS [TabNum2], 
                                [Limit1].[StateID] AS [StateID]
                                FROM   (SELECT 
                                    [Extent1].[ID] AS [ID], 
                                    [Extent1].[ProjectID] AS [ProjectID], 
                                    [Extent1].[Subject] AS [Subject], 
                                    [Extent1].[PlanCompleteDate] AS [PlanCompleteDate], 
                                    [Extent2].[ID] AS [ID1], 
                                    [Extent2].[SenderPersID] AS [SenderPersID], 
                                    [Extent2].[RecipientPersID] AS [RecipientPersID], 
                                    [Extent2].[RecipientReadDate] AS [RecipientReadDate], 
                                    [Extent2].[CreateDate] AS [CreateDate], 
                                    [Extent2].[LastChangeDate] AS [LastChangeDate], 
                                    [Extent2].[ContentText] AS [ContentText], 
                                    [Extent2].[IsPrivate] AS [IsPrivate], 
                                    [Extent3].[ID] AS [ID2], 
                                    [Extent3].[LastName] AS [LastName], 
                                    [Extent3].[FirstName] AS [FirstName], 
                                    [Extent3].[PatrName] AS [PatrName], 
                                    [Extent3].[TabNum] AS [TabNum], 
                                    [Extent4].[ID] AS [ID3], 
                                    [Extent4].[LastName] AS [LastName1], 
                                    [Extent4].[FirstName] AS [FirstName1], 
                                    [Extent4].[PatrName] AS [PatrName1], 
                                    [Extent4].[TabNum] AS [TabNum1], 
                                    [Extent5].[ID] AS [ID4], 
                                    [Extent5].[LastName] AS [LastName2], 
                                    [Extent5].[FirstName] AS [FirstName2], 
                                    [Extent5].[PatrName] AS [PatrName2], 
                                    [Extent5].[TabNum] AS [TabNum2]
                                    FROM     [dbo].[message_task] AS [Extent1]
                                    INNER JOIN [dbo].[message] AS [Extent2] ON [Extent1].[ID] = [Extent2].[ID]
                                    INNER JOIN [dbo].[personal] AS [Extent3] ON [Extent2].[SenderPersID] = [Extent3].[ID]
                                    LEFT OUTER JOIN [dbo].[personal] AS [Extent4] ON [Extent2].[RecipientPersID] = [Extent4].[ID]
                                    LEFT OUTER JOIN [dbo].[personal] AS [Extent5] ON [Extent2].[LastChangePersID] = [Extent5].[ID]
                                    WHERE [Extent1].[ID] = @p__linq__0 ) AS [Project1]
                                OUTER APPLY  (SELECT TOP (1) [Project2].[StateID] AS [StateID]
                                    FROM ( SELECT 
                                        [Extent6].[StateID] AS [StateID], 
                                        [Join5].[CreateDate] AS [CreateDate]
                                        FROM  [dbo].[message_comments] AS [Extent6]
                                        LEFT OUTER JOIN  (SELECT [Extent7].[CreateDate] AS [CreateDate], [Extent8].[ID] AS [ID16]
                                            FROM  [dbo].[message] AS [Extent7]
                                            LEFT OUTER JOIN [dbo].[message_comments] AS [Extent8] ON [Extent7].[ID] = [Extent8].[ID] ) AS [Join5] ON [Extent6].[ID] = [Join5].[ID16]
                                        WHERE ([Project1].[ID] = [Extent6].[TaskID]) AND ([Extent6].[StateID] IS NOT NULL)
                                    )  AS [Project2]
                                    ORDER BY [Project2].[CreateDate] DESC ) AS [Limit1] ) AS [Project3]
                            OUTER APPLY  (SELECT TOP (1) [Project4].[StateID] AS [StateID]
                                FROM ( SELECT 
                                    [Extent9].[StateID] AS [StateID], 
                                    [Join7].[CreateDate] AS [CreateDate]
                                    FROM  [dbo].[message_comments] AS [Extent9]
                                    LEFT OUTER JOIN  (SELECT [Extent10].[CreateDate] AS [CreateDate], [Extent11].[ID] AS [ID17]
                                        FROM  [dbo].[message] AS [Extent10]
                                        LEFT OUTER JOIN [dbo].[message_comments] AS [Extent11] ON [Extent10].[ID] = [Extent11].[ID] ) AS [Join7] ON [Extent9].[ID] = [Join7].[ID17]
                                    WHERE ([Project3].[ID] = [Extent9].[TaskID]) AND ([Extent9].[StateID] IS NOT NULL)
                                )  AS [Project4]
                                ORDER BY [Project4].[CreateDate] DESC ) AS [Limit2]
                            INNER JOIN [dbo].[message_taskStates] AS [Extent12] ON (CASE WHEN ([Project3].[StateID] IS NULL) THEN 1 ELSE [Limit2].[StateID] END) = [Extent12].[ID]
                            LEFT OUTER JOIN [dbo].[projects] AS [Extent13] ON [Project3].[ProjectID] = [Extent13].[ID]
                            LEFT OUTER JOIN  (SELECT [Extent14].[ID] AS [ID13], [Extent14].[RecipientPersID] AS [RecipientPersID], [Extent14].[CreateDate] AS [CreateDate], [Extent15].[ID] AS [ID14], [Extent16].[ID] AS [ID15]
                                FROM   [dbo].[message] AS [Extent14]
                                LEFT OUTER JOIN [dbo].[message_comments] AS [Extent15] ON [Extent14].[ID] = [Extent15].[ID]
                                INNER JOIN [dbo].[message_task] AS [Extent16] ON [Extent14].[ID] = [Extent16].[ID] ) AS [Join12] ON [Project3].[ID] = [Join12].[ID15] ) AS [Project5]
                        OUTER APPLY  (SELECT TOP (1) [Project6].[ID] AS [ID]
                            FROM ( SELECT 
                                [Extent17].[ID] AS [ID], 
                                [Join14].[CreateDate] AS [CreateDate]
                                FROM  [dbo].[message_comments] AS [Extent17]
                                LEFT OUTER JOIN  (SELECT [Extent18].[CreateDate] AS [CreateDate], [Extent19].[ID] AS [ID18]
                                    FROM  [dbo].[message] AS [Extent18]
                                    LEFT OUTER JOIN [dbo].[message_comments] AS [Extent19] ON [Extent18].[ID] = [Extent19].[ID] ) AS [Join14] ON [Extent17].[ID] = [Join14].[ID18]
                                WHERE ([Project5].[ID] = [Extent17].[TaskID]) AND ([Extent17].[StateID] IS NOT NULL)
                            )  AS [Project6]
                            ORDER BY [Project6].[CreateDate] DESC ) AS [Limit3]
                        LEFT OUTER JOIN  (SELECT [Extent20].[ID] AS [ID10], [Extent20].[CreateDate] AS [CreateDate], [Extent21].[ID] AS [ID11], [Extent22].[ID] AS [ID12]
                            FROM   [dbo].[message] AS [Extent20]
                            LEFT OUTER JOIN [dbo].[message_comments] AS [Extent21] ON [Extent20].[ID] = [Extent21].[ID]
                            LEFT OUTER JOIN [dbo].[message_task] AS [Extent22] ON [Extent20].[ID] = [Extent22].[ID] ) AS [Join17] ON [Limit3].[ID] = [Join17].[ID11] ) AS [Project7]
                    OUTER APPLY  (SELECT TOP (1) [Project8].[ID] AS [ID]
                        FROM ( SELECT 
                            [Extent23].[ID] AS [ID], 
                            [Join19].[CreateDate] AS [CreateDate]
                            FROM  [dbo].[message_comments] AS [Extent23]
                            LEFT OUTER JOIN  (SELECT [Extent24].[CreateDate] AS [CreateDate], [Extent25].[ID] AS [ID19]
                                FROM  [dbo].[message] AS [Extent24]
                                LEFT OUTER JOIN [dbo].[message_comments] AS [Extent25] ON [Extent24].[ID] = [Extent25].[ID] ) AS [Join19] ON [Extent23].[ID] = [Join19].[ID19]
                            WHERE ([Project7].[ID] = [Extent23].[TaskID]) AND ([Extent23].[StateID] IS NOT NULL)
                        )  AS [Project8]
                        ORDER BY [Project8].[CreateDate] DESC ) AS [Limit4]
                    LEFT OUTER JOIN  (SELECT [Extent26].[ID] AS [ID7], [Extent26].[CreateDate] AS [CreateDate], [Extent27].[ID] AS [ID8], [Extent28].[ID] AS [ID9]
                        FROM   [dbo].[message] AS [Extent26]
                        LEFT OUTER JOIN [dbo].[message_comments] AS [Extent27] ON [Extent26].[ID] = [Extent27].[ID]
                        LEFT OUTER JOIN [dbo].[message_task] AS [Extent28] ON [Extent26].[ID] = [Extent28].[ID] ) AS [Join22] ON [Limit4].[ID] = [Join22].[ID8]
                )  AS [Project9]
            )  AS [Project11]
        )  AS [Project13]
    )  AS [Limit5]',N'@p__linq__0 int,@p__linq__1 int,@p__linq__2 int,@p__linq__3 int,@p__linq__4 int,@p__linq__5 int,@p__linq__6 int,@p__linq__7 int,@p__linq__8 int,@p__linq__9 datetime2(7)',@p__linq__0=78245,@p__linq__1=3,@p__linq__2=3,@p__linq__3=3,@p__linq__4=3,@p__linq__5=3,@p__linq__6=3,@p__linq__7=3,@p__linq__8=3,@p__linq__9='3000-01-01 00:00:00'

Результаты
Код: 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.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

(1 row(s) affected)
Table 'message_attachments'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'message'. Scan count 0, logical reads 8, physical reads 0, read-ahead reads 0, lob logical reads 3, lob physical reads 0, lob read-ahead reads 0.
Table 'message_comments'. Scan count 6, logical reads 16, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'message_task'. Scan count 0, logical reads 4, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'projects'. Scan count 0, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'message_taskStates'. Scan count 0, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'personal'. Scan count 0, logical reads 4, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 18 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 18 ms.

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


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