Почему запрос долго выполняется при взаимодеййствии с веб-фомрой

120
08 октября 2021, 22:10

У меня есть веб-форма, которая обращается в базе данных к таблице, в которой почти 50 полей и записей свыше 8 миллионов. Бывают случаи, при которых веб-форма долго выполняет запрос объектом OleDbDataReader (зачастую при первой загрузке).

Сам запрос не сложный. пример:

SELECT distinct CALIBRATION_DATE, NTD_NAME, TECHCHART_NUMBER, SOP_NAME, DIAMETER, THICKNESS, CHANNEL1, CHANNEL2, CHANNEL3,
                    CHANNEL4, CHANNEL5, CHANNEL6, CHANNEL7, CHANNEL8, WORKPLACE_ID FROM USC_OTDELKA
                    WHERE (WORKPLACE_ID=16)and(CALIBRATION_DATE>=TO_DATE('28.10.2019 07:00:00','dd.mm.yyyy HH24:MI:ss'))and(CALIBRATION_DATE<TO_DATE('28.10.2019 19:00:00','dd.mm.yyyy HH24:MI:ss'))and(EDIT_STATE=0)
                    ORDER BY CALIBRATION_DATE

как это выглядит в aspx.cs форме:

 OleDbConnection conn = Master.Connect.ORACLE();
    OleDbCommand cmd = conn.CreateCommand();
    cmd.CommandText = @"SELECT distinct CALIBRATION_DATE, NTD_NAME, TECHCHART_NUMBER, SOP_NAME, DIAMETER, THICKNESS, CHANNEL1, CHANNEL2, CHANNEL3,
                        CHANNEL4, CHANNEL5, CHANNEL6, CHANNEL7, CHANNEL8, WORKPLACE_ID FROM USC_OTDELKA
                        WHERE (WORKPLACE_ID=?)and(CALIBRATION_DATE>=?)and(CALIBRATION_DATE<?)and(EDIT_STATE=0)
                        ORDER BY CALIBRATION_DATE";
    cmd.Parameters.AddWithValue("WORKPLACE_ID", WorkplaceID);
    cmd.Parameters.AddWithValue("DATE1", dat1);
    cmd.Parameters.AddWithValue("DATE2", dat2);
    OleDbDataReader rdr = cmd.ExecuteReader();

Почему вообще происходит такой случай, как долгая выборка запроса в веб-форме? Это уже виноват OleDbDataReader ? Проблем из oracle с запросом не наблюдал, а вот в веб-форме бывает долго подгружает. Индексы в таблице присутствуют, работают корректно

READ ALSO
Использование Mutex C#

Использование Mutex C#

Есть класс, выполняющий роль общего ресурса:

112
Как передать в функцию название элементов формы?

Как передать в функцию название элементов формы?

Хотел бы использовать универсальную функцию для вывода гистограммыТ

142
The name doesn&#39;t exist in namespace. Ошибка с присоединением Grid.Resources

The name doesn't exist in namespace. Ошибка с присоединением Grid.Resources

Не совсем понимаю, почему не получается подключить класс к GridResources

101