Share via


Descrição geral das funções do Window

As funções de janela operam em várias linhas (registos) numa linha definida de cada vez. Ao contrário das funções de agregação, as funções de janela exigem que as linhas no conjunto de linhas sejam serializadas (têm uma ordem específica). As funções de janela podem depender da ordem para determinar o resultado.

As funções de janela só podem ser utilizadas em conjuntos serializados. A forma mais fácil de serializar um conjunto de linhas é utilizar o operador serializar. Este operador "congela" a ordem das linhas de forma arbitrária. Se a ordem das linhas serializadas for semântica importante, utilize o operador de ordenação para forçar uma ordem específica.

O processo de serialização tem um custo não trivial associado. Por exemplo, pode impedir o paralelismo de consultas em muitos cenários. Portanto, não aplique serialização desnecessariamente. Se necessário, reorganize a consulta para efetuar a serialização no conjunto de linhas mais pequeno possível.

Conjunto de linhas serializado

Um conjunto de linhas arbitrário (como uma tabela ou a saída de um operador tabular) pode ser serializado de uma das seguintes formas:

  1. Ao ordenar o conjunto de linhas. Veja abaixo uma lista de operadores que emitem conjuntos de linhas ordenadas.
  2. Ao utilizar o operador de serialização.

Muitos operadores tabulares serializam a saída sempre que a entrada já estiver serializada, mesmo que o operador não garanta que o resultado é serializado. Por exemplo, esta propriedade é garantida para o operador extend, o operador de projeto e o operador where.

Operadores que emitem conjuntos de linhas serializados por ordenação

Operadores que preservam a propriedade serializada do conjunto de linhas