Ben 13 LEFT OUTER JOINS kullanmadığım bir sorgu var. Soldaki tabloda büyük bir veri var, bu nedenle sorguyu yürütmek ve sonucu döndürmek için çok uzun zaman alır. Ancak sonucu filtrelemek için bir where cümlesi kullandığımda, çok daha az zaman alır. Şimdi hangisinin daha önce yürütüldüğü konusunda kafam karıştı: sonuç üreten birleşim ve bundan sonra filtrenin filtrelenmesi VEYA önce sonuçları filtreleyerek sonucun birleşimini alır.ilk olarak çalışır: birleştirir veya yan tümce
cevap
Genellikle, herhangi bir DBMS (SQL gibi) en hızlı olduğunu düşündüğü algoritmayı kullanan kendi sorgu optimizasyonunu yapar. Yani filtreliyor, sonra katılıyor.
Okuma: which one runs first in query execution WHERE CLAUSE orJOIN CLAUSE ?
ve
Ben Pinal Dave sonrası Reding ediyorum ve bunu buldum, bunu anlamak için yardıma talso migh
ON yan tümcesini anlamanız JOIN'den önce geçerlidir, bu nedenle Tablo 2'nin olduğu Tablo2'nin tüm sonuçlarını alması nedenidir, ancak Tablo1'i etkilemez, bu nedenle tablonun tüm satırlarını alır1. WHERE yan tümcesi uygulandığında, tam sonuç için geçerlidir, bu nedenle Çizelge 1 ve Tablo 2'den Tablo1 ve Tablo2'den = 1 satır tutulduğu Bayrak1 ve Çizelge 2'deki tüm satırları kaldırır.
Copied from my previous answer
create table A(id int);
create table B(id int);
INSERT INTO A VALUES(1);
INSERT INTO A VALUES(2);
INSERT INTO A VALUES(3);
INSERT INTO B VALUES(1);
INSERT INTO B VALUES(2);
INSERT INTO B VALUES(3);
SELECT * FROM A;
SELECT * FROM B;
id
-----------
1
2
3
id
-----------
1
2
3
Filtre artır işlemi sırasında ilave edilen satır önlemek için artır. JOIN meydana geldikten sonra filtreleyecektir.
select a.*,b.*
from A a left join B b
on a.id =b.id
where a.id=2;
id id
----------- -----------
2 2
- 1. Regexp pattern yan tümce
- 2. QueryOver IN Yan Tümce?
- 3. Bilinmeyen sütun 'in yan tümce'
- 4. 'Çıplak nerede yan tümce' nedir?
- 5. Nhibernate Linq In yan tümce
- 6. Tanımsız sütunlar için yan tümce
- 7. PostgresSQL: Sütun adları olarak yan tümce sözcüklerini kullanma
- 8. JPA Kriteri oluşturucu IN yan tümce sorgusu
- 9. Linq, çok koşullu yan tümce tümcelerini içeren
- 10. Garip Güncelleştirme yan tümce hatası (VB.NET)
- 11. IN IN yan tümce LINQ içinde
- 12. Geri dönen yan tümce başarısız (postgres 9.3, jdbc)
- 13. Linq, birden çok koşullu yan tümce ve null onay
- 14. ORDER BY deyiminde SQL Injection'ı önleyin yan tümce
- 15. MySQL İlişkilendirilmiş bir sorgu ile yan tümce çalışma çalışmıyor
- 16. SQL Server sonuçlarını IN yan tümce tümcesine göre IN
- 17. listesi HQL veya SQL'de IN yan tümcesine geçiriliyor?
- 18. WITH yan tümcesi, bir
- 19. Tam olarak nasıl çalışır?() {}() Çalışır?
- 20. GROUP BY yan tümcesi ile yan tümce? Bu sorguda gruba <code>TotalSales</code> mümkün değilim neden
- 21. Cocoapods project.pbxproj çakışmaları birleştirir
- 22. Dinamik SQL, hemcinsinden farklı bir yan tümce ve aynı sözcükle aynıdır.
- 23. Hangi SQL sorgusu daha hızlıdır? Katılma ölçütlerine göre filtreleme ya da nerede yan tümce?
- 24. İki Panda veri çerçevesini birleştirir/birleştirir. Birinin düzeylerini diğer
- 25. Groovy iki liste birleştirir?
- 26. Pandalar değiştirilmeden birleştirir
- 27. dizi aynı dizini birleştirir?
- 28. İki char diziyi birleştirir?
- 29. igraph icerisindeki VEYA yan tümcesi seç
- 30. Fonksiyonlar yan yana - horribleness veya kabul edilebilir?
sunucu işini daha kolay yapabilir böylece bakılmaksızın SQL Server'ın sorgu iyileştirici etrafında adımlarınızı karıştırmak için nasıl seçtiğine dair, yapabileceğiniz en iyi şey düzgün verileri korumak ve dizin oluşturduğunu unutmayın. –
Bakimli "STATISTICS" de yardımcı olur. – MarkD
Eğer wnat bilgi var eğer kabul ve kabul olarak işaretlemek için unutma –