«query-performance» etiketlenmiş sorular

Veritabanı sorgularının performansını ve / veya verimliliğini artırma ile ilgili sorular için.

4
Uzamsal dizin bir "aralık-sırayla-sınırla" sorgusuna yardımcı olabilir
Bu soruyu sormak, özellikle Postgres için, R-tree / uzaysal dizinleri desteklemesi nedeniyle. Kelimelerin ağaç yapılı (Nested Set model) ve sıklıklarının bulunduğu aşağıdaki tabloya sahibiz: lexikon ------- _id integer PRIMARY KEY word text frequency integer lset integer UNIQUE KEY rset integer UNIQUE KEY Ve sorgu: SELECT word FROM lexikon WHERE lset …

2
Toplanmışlar için dizine alınmış görünümler kullanmak - gerçek olamayacak kadar iyi?
Oldukça büyük bir kayıt sayısına (10-20 milyon satır) sahip bir veri ambarımız var ve genellikle belirli tarihler arasındaki kayıtları sayan veya belirli bayraklara sahip kayıtları sayan sorguları çalıştırıyoruz. SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date >= @startDate GROUP …

2
Aralık türünde tam eşitlikten kaynaklanan hatalı sorgu planı nasıl ele alınır?
Bir tstzrangedeğişkende tam bir eşitlik gerektiren bir güncelleme yapıyorum . ~ 1M satır değiştirilir ve sorgu ~ 13 dakika sürer. Bunun sonucu buradaEXPLAIN ANALYZE görülebilir ve gerçek sonuçlar, sorgu planlayıcısı tarafından tahmin edilenlerden oldukça farklıdır. Sorun şu ki, endeks taramasının açık kalması tek bir satırın dönmesini bekliyor.t_range Bu durum, aralık …

3
WHERE yan tümcesi yan tümce yan tümce eklediğimde görüntüleme en iyi duruma getirilmiş mi?
Görünümün içinde veya dışında bir Görünümü filtrelemeniz fark yaratır mı? Örneğin, bu iki sorgu arasında herhangi bir fark var mı? SELECT Id FROM MyTable WHERE SomeColumn = 1 Veya SELECT Id FROM MyView WHERE SomeColumn = 1 Ve MyViewolarak tanımlanır SELECT Id, SomeColumn FROM MyTable Kaynak tablo bir Bağlantılı Sunucu'da …

1
SQL Server 2014: tutarsız öz katılım kardinalite tahmini için herhangi bir açıklama?
SQL Server 2014'te aşağıdaki sorgu planını göz önünde bulundurun: Sorgu planında, bir birleştirme ar.fId = ar.fIdbir 1 satır tahmini verir. Bununla birlikte, bu bir mantıksal tutarsız tahmindir: arsahip 20,608satır ve tek bir ayrı değer fId(doğru istatistik yansıtılır). Bu nedenle, bu birleştirme, satırın ( ~424MMsatırların) tam çarpımını üreterek sorgunun birkaç saat …

2
Çok sayıda satır eklemek için en hızlı yol nedir?
Dosyaları bir hazırlama tablosuna yüklediğim bir veritabanına sahibim, bu aşamalandırma tablosundan bazı yabancı anahtarları çözmek için 1-2 birleştirme işlemine sahibim ve sonra bu satırları son tabloya (ayda bir bölümü olan) ekliyorum. Üç aylık veriler için 3,4 milyar satır var. Bu satırları final masasına yerleştirmenin en hızlı yolu nedir? SSIS Veri …

3
Saklı yordamlar ve satır içi SQL
Saklı yordamların yürütme yolunda daha etkili olduğunu biliyorum (uygulamalardaki satır içi sql'den). Ancak, basıldığında neden hakkında çok fazla bilgiliyim. Bunun için teknik sebepleri bilmek istiyorum (daha sonra birisine açıklayacağım şekilde). Biri iyi bir cevap formüle etmeme yardımcı olabilir mi?

1
İndeksler: düğüm sayısı aynı ise tamsayıya karşı dize performansı
Ruby on Rails'de PostgreSQL (9.4) veritabanı ile bir uygulama geliştiriyorum. Kullanım durumum için, uygulamanın bütün noktası bir model üzerinde çok özel özellikler ararken, tablolardaki sütunlar çok sık aranacaktır. Şu anda sütunlarda bir integertür kullanılıp kullanılmayacağına veya sütunlar için tipik bir dize türünün (örneğin character varying(255), Rails'teki varsayılan ) kullanılmasına karar …

5
İki tarih sütunu için SARGable WHERE yantümcesi
SARGability hakkında ilginç bir soru olan ben var. Bu durumda, iki tarih sütunu arasındaki farkın bir tahminini kullanmakla ilgilidir. İşte kurulum: USE [tempdb] SET NOCOUNT ON IF OBJECT_ID('tempdb..#sargme') IS NOT NULL BEGIN DROP TABLE #sargme END SELECT TOP 1000 IDENTITY (BIGINT, 1,1) AS ID, CAST(DATEADD(DAY, [m].[severity] * -1, GETDATE()) AS …

1
Ara ve Tara… Bölünmüş masalarda
Bu makaleleri PCMag'da Itzik Ben-Gan tarafından okudum : Birinci Bölümde Arayın ve Taranacaksınız: Optimize Edici Aramaya Optimize Etmediğinde ve Bölüm II'yi Tararken: Artan Anahtarlar Şu anda bölümlenmiş tüm tablolarımızda "Gruplanmış Maks." Sorunu yaşıyorum. Max (ID) almak için verilen Itzik Ben-Gan hilesini kullanıyoruz , ancak bazen çalışmıyor: DECLARE @MaxIDPartitionTable BIGINT SELECT …

2
LIKE endeksi kullanıyor, CHARINDEX kullanmıyor mu?
Bu soru eski sorumla ilgili . Aşağıdaki sorgu yürütmek için 10 ila 15 saniye sürüyordu: SELECT [customer].[Customer name],[customer].[Sl_No],[customer].[Id] FROM [company].dbo.[customer] WHERE (Charindex('123456789',CAST([company].dbo.[customer].[Phone no] AS VARCHAR(MAX)))>0) Bazı makalelerde endekslemenin kullanıldığını CASTve CHARINDEXfaydalanmayacağını gördüm . Kullanırken LIKE '%abc%'indekslemeden yararlanmayacağını söyleyen bazı makaleler de var LIKE 'abc%': http://bytes.com/topic/sql-server/answers/81467-using-charindex-vs-like-where /programming/803783/sql-server-index-any-improvement-for benzeri sorgular http://www.sqlservercentral.com/Forums/Topic186262-8-1.aspx#bm186568 Benim …

1
Tekrarlama olmadan kombinasyonlar için SQL sorgusu
Bir işlevde (veya as) kullanılabilen ve n değerlerinin tüm bileşimlerini alan bir sorguya ihtiyacım var. Ve k uzunluklarının tüm kombinasyonlarına ihtiyacım var burada k = 1..n. Genişletilmiş numune girişi ve sonucu, giriş 2 yerine 3 değere sahiptir - ancak giriş değerlerinin sayısı 1 ile n arasında değişebilir. Örnek: Input: Birden …

1
Hash tuşları prob ve artık
Söyle, böyle bir sorgu var: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Yukarıdaki sorgunun bir Karma Birleştirme kullandığını ve bir artık olduğunu varsayarsak, prob anahtarı olacak col1ve artık olacaktır len(a.col1)=10. Ama başka bir örnek üzerinden geçerken, hem probun hem de artıkların aynı sütun olduğunu gördüm. Aşağıda söylemeye …

4
"Bazen" yavaş bir sorguyu teşhis etme konusunda öneriler
Bir kaplama dizini aracılığıyla dizinlenmiş bir görünümden sonuçları döndüren bir saklı yordam var. Genellikle hızlı çalışır (~ 10ms), bazen 8 saniyeye kadar çalışabilir. Örnek bir rastgele yürütme (not: bu yavaş değil, ancak sorgu metni iletilen değerle aynıdır): declare @p2 dbo.IdentityType insert into @p2 values(5710955) insert into @p2 values(5710896) insert into …

2
Birleştirme operatörü neden girdilerinden daha az satır tahmin ediyor?
Aşağıdaki sorgu planı snippet'inde, Concatenationişleç için satır tahmininin ~4.3 billion rowsveya iki girişi için satır tahminlerinin toplamının olması gerektiği açıktır . Bununla birlikte, yüzlerce GB veriyi tempdb'ye döken ~238 million rowsbir alt optimal Sort/ Stream Aggregatestratejiye yol açan bir tahmin üretilir . Bu durumda mantıksal olarak tutarlı bir tahmin, bir …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.