powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP MVC 5 Периодически исключение
25 сообщений из 25, страница 1 из 1
ASP MVC 5 Периодически исключение
    #39448888
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Ребят помогите найти причину ошибки...

Есть сайт ASP MVC 5 + dapper, 1-2 раза в день вижу ошибку в логе:

System.OutOfMemoryException
Выдано исключение типа "System.OutOfMemoryException".
в BusinessLayer.Events.EventsManager.EventDetailed(Int32 id)
в WEB.Controllers.EventsController.Event(Int32 id) в D:\BACKUP\***\WEB\Controllers\EventsController.cs:строка 86
в lambda_method(Closure , ControllerBase , Object[] )
в System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
в System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
в System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
в System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
в System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
в System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
в System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
в System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)


запрос: (BusinessLayer.Events.EventsManager.EventDetailed(Int32 id))
Код: sql
1.
SELECT Event_Id, Title, Text, [User], Phone, Adress, Free, Category.Name,  Date_Event,  Time_From, Time_To, Views.Views         FROM Events, Category, Date_Events, Rel_Events_Date, Views  WHERE   Event_Id = " + id + " and Events.Category = Category.Category_Id and Events.Event_Id = Rel_Events_Date.Event and Date_Events.Date_Events_Id = Rel_Events_Date.Date_id and Views.Record_id = Events.Event_Id




Таблицы:

Код: 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.
CREATE TABLE [dbo].[Category] (
  [Category_Id] int IDENTITY(1, 1) NOT NULL,
  [Name] nvarchar(40) COLLATE Cyrillic_General_CI_AS NOT NULL,
  [Parrent_category] int NOT NULL,
  [Is_sub_category] bit NOT NULL,
  [Orders] smallint NULL,
  PRIMARY KEY CLUSTERED ([Category_Id])
)
ON [PRIMARY]
GO

EXEC sp_addextendedproperty 'MS_Description', N'сортировка', N'schema', N'dbo', N'table', N'Category', N'column', N'Orders'
GO

----

CREATE TABLE [dbo].[Category] (
  [Category_Id] int IDENTITY(1, 1) NOT NULL,
  [Name] nvarchar(40) COLLATE Cyrillic_General_CI_AS NOT NULL,
  [Parrent_category] int NOT NULL,
  [Is_sub_category] bit NOT NULL,
  [Orders] smallint NULL,
  PRIMARY KEY CLUSTERED ([Category_Id])
)
ON [PRIMARY]
GO

EXEC sp_addextendedproperty 'MS_Description', N'сортировка', N'schema', N'dbo', N'table', N'Category', N'column', N'Orders'
GO

----


CREATE TABLE [dbo].[Date_Events] (
  [Date_Events_Id] int IDENTITY(1, 1) NOT NULL,
  [Date_event] date NOT NULL,
  [Expired] bit DEFAULT 0 NULL,
  PRIMARY KEY CLUSTERED ([Date_Events_Id])
)
ON [PRIMARY]
GO



---
CREATE TABLE [dbo].[Rel_Events_Date] (
  [Rel_Events_Date_Id] int IDENTITY(1, 1) NOT NULL,
  [Event] int NOT NULL,
  [Date_id] int NOT NULL,
  PRIMARY KEY CLUSTERED ([Rel_Events_Date_Id])
)
ON [PRIMARY]
GO



---
CREATE TABLE [dbo].[Views] (
  [Record_id] int NOT NULL,
  [Views] int DEFAULT 0 NOT NULL,
  [Type] smallint DEFAULT 0 NOT NULL,
  CONSTRAINT [Views_pk] PRIMARY KEY CLUSTERED ([Record_id])
)
ON [PRIMARY]
GO

EXEC sp_addextendedproperty 'MS_Description', N'0 - событие
1 - блог', N'schema', N'dbo', N'table', N'Views', N'column', N'Type'
GO



План выполнения -

сразу возникает вопрос - почему в таблицу вью 38% стоимость? Там наверно нужны дополнительные индексы? PS сейчас статистику просмотра страниц отключил (то есть в табличку вью не идет апдейт + 1 при посещении страницы, так как при наплывал людей часто падал сайт)
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39448889
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39448890
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вернее в таблицу связи Rel_Events_Date 38%
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39448900
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Event_Id - это где и что? и почему запрос не параметрический?
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39448902
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One Event_Id - это где и что? и почему запрос не параметрический?

это я готовый пример взял, вот весь метод (BusinessLayer.Events.EventsManager.EventDetailed(Int32 id)):

Код: 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.
  //Событие детально 
        public EventsFull EventDetailed(int id)
        {
            EventsFull Ev = new EventsFull();
            using (IDbConnection db = new SqlConnection(connectionString))
            {
                try
                {
                    Ev = db.Query<EventsFull>("SELECT Event_Id, Title, Text, [User], Phone, Adress, Free, Category.Name,  Date_Event,  Time_From, Time_To, Views.Views         FROM Events, Category, Date_Events, Rel_Events_Date, Views  WHERE   Event_Id = " + id + " and Events.Category = Category.Category_Id and Events.Event_Id = Rel_Events_Date.Event and Date_Events.Date_Events_Id = Rel_Events_Date.Date_id and Views.Record_id = Events.Event_Id").SingleOrDefault(); 
                    
                }
                catch (Exception dbEx)
                {
                    string innEx = "";
                    if (dbEx.InnerException != null) { innEx = dbEx.InnerException.ToString(); }
                    Ev.Error = "EventDetailed id: " + id     + dbEx.Message + "  * " + innEx;
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(AppDomain.CurrentDomain.BaseDirectory + "LOGS/ERROR.LOG"))
                    {
                        sw.WriteLine(DateTime.Now.ToString() + " EventDetailed id: " + id + " " + Environment.NewLine + dbEx.Message.ToString() + Environment.NewLine + innEx);
                        sw.Flush();
                    }
                    throw dbEx;
                }
            }
            return Ev;
        }
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449042
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick,
Код: c#
1.
 Event_Id = " + id + " and 


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

по запросу ну форматирование сделал бы для приличия, а так схема без явного указания join читает плохо не рекомендую, вопросу индексов смотреть надо что тащишь.. ну я вижу по полям склейки ты не везде индексы, обычно по fk делают некластерные индексы для джойна( а там можно и инклуд индексы)

п.с. ну дружище 21 век открой для себя log4net/nlog, вместо StreamWriter
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449082
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuSputnick,
Код: c#
1.
 Event_Id = " + id + " and 


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

по запросу ну форматирование сделал бы для приличия, а так схема без явного указания join читает плохо не рекомендую, вопросу индексов смотреть надо что тащишь.. ну я вижу по полям склейки ты не везде индексы, обычно по fk делают некластерные индексы для джойна( а там можно и инклуд индексы)

п.с. ну дружище 21 век открой для себя log4net/nlog, вместо StreamWriter

Спасибо за ответ.

1) Параметрический запрос это:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
 public void Delete(int id)
        {
             using (IDbConnection db = new SqlConnection(connectionString))
             {
                 var sqlQuery = "DELETE FROM Users WHERE Id = @id";
                 db.Execute(sqlQuery, new { id });
             }
        }


?

У меня в некоторых простых местах так осталось по старинке, а вообще модель + параметры:

Код: sql
1.
2.
 var sqlQueryDateEv = "INSERT INTO Date_Events (Date_Event) VALUES(@Date_Event); SELECT CAST(SCOPE_IDENTITY() as int )";
                    int idDate = db.Query<int>(sqlQueryDateEv, NewEvent).FirstOrDefault();   



Какие преимущества у запросов с параметрами?

2) ну сколько на серваке памяти? мож течет по памяти ?
--
Это вирт хостинг. 512. Вряд ли, так как на таком же хостинге/тарифе сидел новостной сайт asp mvc 4 + EF5 с дико не оптимизированными запросами которые EF генерирует и таких ошибок не было.

3) п.с. ну дружище 21 век открой для себя log4net/nlog, вместо StreamWriter
-
проект не сложный, читал что либы логирования много ресурсов отъедают. Хотя может это экономия на списках.... для себя уже выбрал serilog

4) Так, значит я перепишу запрос с джойном. А тут - ( а там можно и инклуд индексы) - не понял... мож пж подробней
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449109
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick1) Параметрический запрос это?
Какие преимущества у запросов с параметрами?

да, защита от sql инъекции, это основы основ

SputnickЭто вирт хостинг. 512. Вряд ли, так как на таком же хостинге/тарифе сидел новостной сайт asp mvc 4 + EF5 с дико не оптимизированными запросами которые EF генерирует и таких ошибок не было.

ну не оптимизированые запросы эт как бы больше к времени выполнение чем outofmemory, ну виртуальный эт шаред чтоль? у тебя мог ресурсы выжрать соседний сайт к примеру. а если выделенный сервак то ваще не будет работать так как винда серверная гиг сжирает, ну виндус нано можно но я хз как там с иис поработать.

Sputnickпроект не сложный, читал что либы логирования много ресурсов отъедают. Хотя может это экономия на списках.... для себя уже выбрал serilog

много эт сколько? там тот же внутри тот же StreamWriter если fileappender, и чуть кода для удобства

Sputnick4) Так, значит я перепишу запрос с джойном. А тут - ( а там можно и инклуд индексы) - не понял... мож пж подробней
[/quot]
https://msdn.microsoft.com/ru-ru/library/ms190806.aspx
пока рано смотреть в сторону include index, просто так индексы лепить на все подряд не стоит можешь и хуже сделать, сделай некластерный индекс по полям склейки таблиц и посмотри план запроса, сам по себе запрос не содержи ничего сложного прост Join-ы и все. не должно тормозить или что то еще.
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449131
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так, запрос переписал на джойны:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Event_Id, Title, Text, [User], Phone, Adress, Free, cat.Name,  Date_Event,  Time_From, Time_To        
FROM Events 

INNER JOIN Category cat ON Events.Category = cat.Category_Id 
INNER JOIN Rel_Events_Date relDate ON Events.Event_Id = relDate.Event
INNER JOIN Date_Events de ON relDate.Date_id = de.Date_Events_Id

WHERE   Events.Event_Id = 3830 



время выполнения такое же как и в старом варианте запроса - 125 мс

убрал пометку "кластеризованый" индекс с трех индексов, теперь план выполнения такой - http://joxi.ru/0KAgMW4IRV3Nml
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449164
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnickубрал пометку "кластеризованый" индекс с трех индексов
а зачем? пытаюсь понять ход твоих мыслей.
вкрации
1) кластерный индекс на первичным ключе убирать не надо
2) добавить некластернный индекс на поля склейки таблиц

ну и почитать можно тут http://www.sql.ru/articles/mssql/03013101indexes.shtml
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449205
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuSputnickубрал пометку "кластеризованый" индекс с трех индексов
а зачем? пытаюсь понять ход твоих мыслей.
вкрации
1) кластерный индекс на первичным ключе убирать не надо
2) добавить некластернный индекс на поля склейки таблиц

ну и почитать можно тут http://www.sql.ru/articles/mssql/03013101indexes.shtml
Вы поосторожнее с такими советами, особенно когда даёте их тем, кто не в теме.

У ТСа был хороший план, где надо было разобраться с одним Clustered Index Scan, а теперь у него сплошные Key Lookup-ы :)
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449209
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick, какие поля у Вас выбираются из таблицы Rel_Events_Date? Из запроса не понятно.
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449218
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASputnick, какие поля у Вас выбираются из таблицы Rel_Events_Date? Из запроса не понятно.

никаких, это связная таблица, которая связывает таблицу дат событий Date_Events и сами события Events, она (Rel_Events_Date) нужна, так как я с ней работаю для изощренной выборки для рассылки персональных уведомлений подписчикам по дате, категории и т д
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449298
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhandmadeFromRuпропущено...

а зачем? пытаюсь понять ход твоих мыслей.
вкрации
1) кластерный индекс на первичным ключе убирать не надо
2) добавить некластернный индекс на поля склейки таблиц

ну и почитать можно тут http://www.sql.ru/articles/mssql/03013101indexes.shtml
Вы поосторожнее с такими советами, особенно когда даёте их тем, кто не в теме.

У ТСа был хороший план, где надо было разобраться с одним Clustered Index Scan, а теперь у него сплошные Key Lookup-ы :)
а что я плохо посоветовал? я ж не виноват что он убрал их, поэтому я и направил на статью чтоб он прочитал и понял принципы индексов, так как вижу что он плывет.
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449380
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuskyANAпропущено...

Вы поосторожнее с такими советами, особенно когда даёте их тем, кто не в теме.

У ТСа был хороший план, где надо было разобраться с одним Clustered Index Scan, а теперь у него сплошные Key Lookup-ы :)
а что я плохо посоветовал? я ж не виноват что он убрал их, поэтому я и направил на статью чтоб он прочитал и понял принципы индексов, так как вижу что он плывет.
Для того запроса, что тут обсуждается не нужен "некластернный индекс на поля склейки таблиц".
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449385
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SputnickskyANASputnick, какие поля у Вас выбираются из таблицы Rel_Events_Date? Из запроса не понятно.

никаких, это связная таблица, которая связывает таблицу дат событий Date_Events и сами события Events, она (Rel_Events_Date) нужна, так как я с ней работаю для изощренной выборки для рассылки персональных уведомлений подписчикам по дате, категории и т д
Значит скорее всего Вы не то выбрали для Primary Key в ней. Покажите полную инструкцию CREATE для неё.
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449436
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASputnickпропущено...


никаких, это связная таблица, которая связывает таблицу дат событий Date_Events и сами события Events, она (Rel_Events_Date) нужна, так как я с ней работаю для изощренной выборки для рассылки персональных уведомлений подписчикам по дате, категории и т д
Значит скорее всего Вы не то выбрали для Primary Key в ней. Покажите полную инструкцию CREATE для неё.

сейчас вроде все правильно, для первичных ключей кластерный (Rel_Events_Date_Id), а дополнительные для склейки обычный индекс (Event):



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE [dbo].[Rel_Events_Date] (
  [Rel_Events_Date_Id] int IDENTITY(1, 1) NOT NULL,
  [Event] int NOT NULL,
  [Date_id] int NOT NULL,
  PRIMARY KEY CLUSTERED ([Rel_Events_Date_Id])
)
ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [Rel_Events_Date_idx] ON [dbo].[Rel_Events_Date]
  ([Event])
WITH (
  PAD_INDEX = OFF,
  DROP_EXISTING = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  SORT_IN_TEMPDB = OFF,
  ONLINE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449446
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuSputnick1) Параметрический запрос это?
Какие преимущества у запросов с параметрами?


ну не оптимизированые запросы эт как бы больше к времени выполнение чем outofmemory, ну виртуальный эт шаред чтоль? у тебя мог ресурсы выжрать соседний сайт к примеру. а если выделенный сервак то ваще не будет работать так как винда серверная гиг сжирает, ну виндус нано можно но я хз как там с иис поработать.




ну не оптимизированые запросы эт как бы больше к времени выполнение
----
да, новостной этот сайт перекочевал на вдс, без кеширования таймаут соединения с бд часто выскакивает, с кешированием летает все.


а если выделенный сервак то ваще не будет работать так как винда серверная гиг сжирает
----
1 гиг оперативы, 2012 r2 сервер и 200 метров еще свободно. Слышал можно запускать вин сервер без оболочки, чтобы только службы работали.... меньше чтоб оперативы отъедало.
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449467
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже индекс один провтыкал, в таблице Rel_Events_Date поле Date_id, по нем связывается с таблицей Date_Events
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449550
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДля того запроса, что тут обсуждается не нужен "некластернный индекс на поля склейки таблиц".
эм вообще то нужен, у него ни по одному fk(хотя он их даже не разметил судя по схеме) не было индекса, только на первичные ключи. так что твой коммент что я учу плохому считаю не уместным
к примеру вот у него есть склейка с Rel_Events_Date через Event, где Event просто поле и все.
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449565
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuskyANAДля того запроса, что тут обсуждается не нужен "некластернный индекс на поля склейки таблиц".
эм вообще то нужен, у него ни по одному fk(хотя он их даже не разметил судя по схеме) не было индекса, только на первичные ключи. так что твой коммент что я учу плохому считаю не уместным
к примеру вот у него есть склейка с Rel_Events_Date через Event, где Event просто поле и все.
Ты первый план смотрел? Зачем там дополнительные индексы?
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449569
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

конечно смотрел, и написал что считается хорошим тоном вешать некластренный индекс на поле склейки таблиц, в чем мой совет не очень?
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449574
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

тем более у него поля должны быть судя по схеме как fk дабы была целостность структуры
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39449596
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SputnickskyANAпропущено...

Значит скорее всего Вы не то выбрали для Primary Key в ней. Покажите полную инструкцию CREATE для неё.

сейчас вроде все правильно, для первичных ключей кластерный (Rel_Events_Date_Id), а дополнительные для склейки обычный индекс (Event):



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE [dbo].[Rel_Events_Date] (
  [Rel_Events_Date_Id] int IDENTITY(1, 1) NOT NULL,
  [Event] int NOT NULL,
  [Date_id] int NOT NULL,
  PRIMARY KEY CLUSTERED ([Rel_Events_Date_Id])
)
ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [Rel_Events_Date_idx] ON [dbo].[Rel_Events_Date]
  ([Event])
WITH (
  PAD_INDEX = OFF,
  DROP_EXISTING = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  SORT_IN_TEMPDB = OFF,
  ONLINE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO


Поле Rel_Events_Date_Id лишнее и Rel_Events_Date_idx не нужен.

Сделайте просто кластерный индекс по обоим полям:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE [dbo].[Rel_Events_Date] (
  [Event] int NOT NULL,
  [Date_id] int NOT NULL,
  PRIMARY KEY CLUSTERED ([Event], [Date_id])
)
...
Рейтинг: 0 / 0
ASP MVC 5 Периодически исключение
    #39451111
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANASputnickпропущено...



[/src]
Поле Rel_Events_Date_Id лишнее и Rel_Events_Date_idx не нужен.

Сделайте просто кластерный индекс по обоим полям:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE [dbo].[Rel_Events_Date] (
  [Event] int NOT NULL,
  [Date_id] int NOT NULL,
  PRIMARY KEY CLUSTERED ([Event], [Date_id])
)



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


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