У меня есть эта проблема, когда мне нужно сделать COUNT(COLUMN_NAME)
и SUM(COLUMN_NAME)
на нескольких таблицах. Проблема в том, что это время на SQL Server для этого.Что такое «ПАРАЛЛЕЛЬНЫЙ» эквивалент в SQL Server
У нас есть более 2 миллиардов записей, для которых мне необходимо выполнить эти операции.
В Oracle мы можем принудительно выполнить параллельное выполнение для одного запроса/сеанса с помощью подсказки PARALLEL
. Например, для простого SELECT COUNT
, мы можем сделать
SELECT /*+ PARALLEL */ COUNT(1)
FROM USER.TABLE_NAME;
Я искал, если есть что-то для SQL Server, и я не мог comeup с чем-то конкретным, где я могу указать таблицу подсказку для параллельного выполнения. Я полагаю, SQL Server сам решает, выполнять ли параллельное или последовательное выполнение в зависимости от стоимости запроса.
Тот же запрос в Oracle с параллельным намеком занимает 2-3 минуты для выполнения, тогда как на SQL Server это занимает около часа и половины.
Не можете ли вы показать нам запрос? – jarlh
Что делать, если вы попытаетесь использовать 'COUNT_BIG (COLUMN NAME)' вместо просто 'COUNT'? Может быть, это поможет ... AFAIK нет возможности принудительно выполнить выполнение запроса parrarel на сервере sql, к сожалению. –
На самом деле да, я делаю COUNT_BIG, который берет навсегда. Конечно, COUNT на большой таблице выдает исключение. Я отредактировал вопрос. – Navyseal