

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Evitar fazer cálculos de \$1id na consulta
<a name="best-practices-content-16"></a>

 Ao usar IDs customização nas consultas, sempre realize cálculos estáticos fora das consultas e forneça esses valores nos parâmetros. Quando valores estáticos são fornecidos, o mecanismo é mais capaz de otimizar as pesquisas e evitar a digitalização e a filtragem desses valores. 

 Se você quiser criar bordas entre os nós que existem no banco de dados, uma opção pode ser: 

```
UNWIND $sections as section
MATCH (s:Section {`~id`: 'Sec-' + section.id})
MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
```

 Com parâmetros: 

```
parameters={sections: [{id: '1'}, {id: '2'}]}
```

 Na consulta acima, o `id` da seção está sendo computado na consulta. Como o cálculo é dinâmico, o mecanismo não pode embutir identificações estaticamente e acaba escaneando todos os nós da seção. O mecanismo então executa a pós-filtragem dos nós necessários. Isso pode ser caro se houver muitos nós de seção no banco de dados. 

 A melhor maneira de fazer isso é prefixar `Sec-` nos ids que estão sendo passados para o banco de dados: 

```
UNWIND $sections as section
MATCH (s:Section {`~id`: section.id})
MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
```

 Com parâmetros: 

```
parameters={sections: [{id: 'Sec-1'}, {id: 'Sec-2'}]}
```