Сравните записи N и N-1, используя Row_NUMBER (). Проблема с производительностью - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь сравнить записи [N] и [N-1], Partition By c_id ORDER BY b_id DESC. Запрос выполняется нормально, но работает очень медленно для функции ROW_NUMBER(). самые дорогие области - поиск по индексу, сортировка по разделам и совпадение Ha sh. Есть ли способ написать запрос для повышения производительности.

Select [N].*,[N-1]* from  
(
    (
        Select p_id,b_id,c_id,cust_name,TNP,TRQI,First_One_Latest 
        from (
            Select p_id, b_id, c_id, cust_name, TNP, TRQI,
                    ROW_NUMBER() OVER (Partition By c_id ORDER BY b_id DESC) First_One_Latest 
            from data.Counterparty_Credit_Risk 
            where ISNUMERIC(c_id)=1 
            and cust_src_system=N'SET1' 
        ) As FIRST 
        where FIRST.First_One_Latest=1
    ) As [N] 
    INNER JOIN 
    (
        Select p_id,b_id,c_id,cust_name,TNP,TRQI,First_One_Latest 
        from (
            Select p_id,b_id,c_id,cust_name,TNP,TRQI
            ,ROW_NUMBER() OVER (Partition By c_id ORDER BY b_id DESC) First_One_Latest 
            from data.Counterparty_Credit_Risk 
            where ISNUMERIC(c_id)=1 
            and cust_src_system=N'SET1' 
        ) As Second 
        where Second.First_One_Latest=2
    ) As [N-1]   
        ON N.c_id = [N-1].c_id 
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...