Добрый день!
Есть:
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 минут при первом выполнении.
Не пойму почему программа работает быстрее.. Подскажите, пожалуйста.