Я использую раздел оракула. Я вижу лучше I/O и меньше времени выполнения. Но я вижу всплеск процессора. Есть ли передел для раздела в приведенном ниже сценарии? SQL-запрос:Есть ли альтернатива «row_number() over (partition by col1 order by col2)»?
SELECT C2, ROW_NUMBER() OVER(PARTITION BY C2 ORDER BY C3) AS DISPLAY_ORDER
FROM MYTABLE;
Таблица данных:
C1, C2, C3
1, 1000, 101
2, 1000, 102
3, 1000, 200
4, 1000, 300
5, 1001, 100
6, 1001, 101
7, 1001, 102
8, 1001, 103
Выход:
C1, C2, C3
1, 1000, 1
2, 1000, 2
3, 1000, 3
4, 1000, 4
5, 1001, 1
6, 1001, 2
7, 1001, 3
8, 1001, 4
Я предполагаю, что row_number() использовал наилучший возможный алгоритм для достижения этого требования. И аналитические функции должны потреблять больше CPU. –
Я не понимаю вопроса. Почему вы не хотите использовать 'row_number()'? –
Когда я использую PARTITION BY, я вижу всплеск процессора. Именно по этой причине я не хочу использовать «ROW_NUMBER() OVER PARTITION BY» – Dakshin