interogări imbricate 1C Enterprise 8

De multe ori, aveți nevoie pentru a face o preselecție din baza de date în conformitate cu o anumită condiție. Pentru a face acest lucru, 1C 8.3 trebuie să utilizați interogări imbricate.

Dar trebuie să se țină seama de faptul că, în cele mai multe cazuri, interogări imbricate 1C inutil, fără a conecta rezultatele lor cu alte tabele. O astfel de conexiune, practic, în orice caz, să conducă la o scădere semnificativă a inflației de interogare ca un întreg.







Un exemplu de interogare imbricate pe limba de interogare

Aici este un exemplu imbricate interogări de limbaj de interogare 1C. Să presupunem că vrem să eșantion suma unui rest pentru clienții individuali la o anumită dată:







ALEGE
NeraspOplatyOstatki.Zakazchik,
NeraspOplatyOstatki.SummaOst
DE LA

În cazul în care baza de date este de a efectua o astfel de cerere, pot exista funcționarea incorectă a optimizatorul, deoarece este dificil de a defini planul de procesare de interogare. În cazul în care baza de date se alătură două tabele, de optimizare a construiește un algoritm bazat pe calcularea numărului de intrări în aceste tabele.

Când este utilizat ca o interogare imbricate, calcula numărul de înregistrări returnate dintr-o interogare imbricate este foarte dificil.

Care este cel mai bun?

De aceea, 1C descurajează ferm utilizarea imbricate interogări, și în schimb a dezvoltat un tabel temporar. Folosind cererea noastră anterioară pentru o tabelă temporară va arăta astfel:

Acum, optimizatorul știe în avans cât de multe rânduri într-un tabel temporar, și de a optimiza cu ușurință conexiunea tabele algoritm.