Re[2]: MS SQL select top 1 тормозит
От: elmal  
Дата: 13.08.19 07:55
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Здравствуйте, elmal, Вы писали:


BE>Сравните планы запрося для TOP 1 и TOP 14. Ну и здесь их покажите.

TOP 1:
SELECT    <-  Top       <= Nested Loops   <=  Index Scan (NonClustered)
Cost: 0%      Cost: 0%     (Inner Join)  <-|  (stock_timestamp_idx)
                           Cost: 0%        |  Cost: 0%
                                           |  
                                           |  Rid Lookup (Heap)
                                           |  (Stock)
                                           - Cost: 100%


TOP 14:
SELECT    <-  Top       Parallelism      <= Sort            <= Nested Loops   <= Compute Scalar <=  Index Scan (NonClustered)
Cost: 0%      Cost: 0%  (Gather Streams)    (Top N Sort)       (Inner Join)  <-| Cost: 0%           (stock_tankUUID_idx)
                        Cost: 0%            Cost: 0%           Cost: 0%        |                    Cost: 0%
                                                                               |  
                                                                               |  Rid Lookup (Heap)
                                                                               | (Stock)
                                                                               - Cost: 100%


При этом, что прикол:
DECLARE @topCount INT
SET @topCount = 1

SELECT TOP (@topCount)

Это работает быстро.

То есть понятно что берется другой индекс. Непонятно какого собственно черта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.