Задать вопрос
@Programep

Как уменьшить время выполнения t-sql запроса (оптимизировать) к Oracle?

Добрый день!
Есть:
MS SQL Server 2012;
Link к серверу Oracle;
Программа, которая выполняет аналогичные запросы за время < 10 секунд.
Нужно:
Уменьшить время выполнения sql-запроса. Пробовал два варианта:
1.
SELECT [time],[column1],[column2],[column_N]
from openquery([oracleLink],'SELECT [time],cast([column1] as float) [column1],
cast([column2] as float) [column2],
cast([column_N] as float) [column_N]
FROM [table] WHERE [time] >= ''[time_param]'' 
and [id]=[int_param] and (COALESCE([column1],[column2],[column_N]) is not null)')

2.
SELECT [time],[column1],[column2],[column_N]
from openquery([oracleLink],'SELECT [time],cast([column1] as float) [column1],
cast([column2] as float) [column2],
cast([column_N] as float) [column_N]
FROM [table] WHERE [time] >= ''[time_param]'' 
and [id]=[int_param]') 
where (COALESCE([column1],[column2],[column_N]) is not null)

В первом варианте стоимость выполнения меньше, но и первый и второй вариант бывают выполняются >2 минут при первом выполнении.
Не пойму почему программа работает быстрее.. Подскажите, пожалуйста.
  • Вопрос задан
  • 1332 просмотра
Подписаться 2 Оценить 2 комментария
Решения вопроса 2
@Programep Автор вопроса
Использование Binding and Defining. Oracle в запросах сократило время выполнения.
Ответ написан
Комментировать
@DefineDef
Использовать Oracle профилировщик запросов, который визуально профилирует запросы, сравнивает результаты профилирования и помогает при оптимизации запросов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AndyKorg
@AndyKorg
Кнопконажиматель и припоерасплавлятель
Посмотрите профайлером что конкретно отправляется программой на ms sql, и повторите эти запросы "вручную". Пока не достаточно информации для более полного ответа
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы