«query-performance» etiketlenmiş sorular

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

2
Tarih Aralıklarını Almanın En Verimli Yolu
Böyle bir tablo yapısıyla tarih aralıklarını almanın en etkili yolu nedir? create table SomeDateTable ( id int identity(1, 1) not null, StartDate datetime not null, EndDate datetime not null ) go Her ikisi için de bir aralık istediğinizi StartDateve EndDate. Yani başka bir deyişle, eğer StartDatearasına düşer @StartDateBeginve @StartDateEndve EndDatearasında …


3
Performansı yavaşlatan Anahtar Arama (Kümelenmiş) operatörünü ortadan kaldırın
Yürütme planımda Anahtar Arama (Kümelenmiş) operatörünü nasıl kaldırabilirim? Tablo tblQuoteszaten kümelenmiş bir dizin (on QuoteID) ve 27 kümelenmemiş dizin vardır, bu yüzden daha fazla oluşturmamaya çalışıyorum. Kümelenmiş dizin sütununu QuoteIDyardımcı olacağını umarak sorguma koydum - ama ne yazık ki hala aynı. Burada icra planı . Veya görüntüleyin: Anahtar Arama işlecinin …

1
Saklı yordam ve plan önbelleğinde mantık
SQL Server 2012 ve 2016 Standardı: if-elseBir parametrenin değerine bağlı olarak, kodun iki dalından birini yürütmek için depolanmış bir yordama mantık koyarsam , motor en son sürümü önbelleğe alıyor mu? Ve aşağıdaki yürütmede, parametrenin değeri değişirse, kodun farklı bir dalı yürütülmesi gerektiğinden , saklı yordam yeniden derlenecek ve önbelleğe alınacak …

1
Tarih karşılaştırmaları ile düşük performans gösteren alt sorgu
Eşleşen bir alana sahip önceki tüm kayıtların toplam sayısını bulmak için bir alt sorgu kullanırken, performans 50 bin kadar az kayıt içeren bir tabloda korkunçtur. Alt sorgu olmadan, sorgu birkaç milisaniye içinde yürütülür. Alt sorgu ile yürütme süresi bir dakikadır. Bu sorgu için sonuç: Yalnızca belirli bir tarih aralığındaki kayıtları …

2
300.000 satır tablosunda çalıştırmak için 11 dakika süren sorguyu katılın
Aşağıdaki sorgunun yürütülmesi 11 dakikadan fazla sürüyor. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS next_day FROM `tms_emp_badge_card` …

3
EXISTS sorgum neden dizin araması yerine dizin taraması yapıyor?
Bazı sorguları optimize etmeye çalışıyorum. Aşağıdaki sorgu için, SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , o.decBCShipFinal , o.decBCShipTax …

1
sp_cursoropen ve paralellik
Ben başımı etrafında almak gibi olamaz bir sorgu ile bir performans sorunu ile karşılaşıyorum. Sorguyu bir imleç tanımından çıkardım. Bu sorgunun yürütülmesi birkaç saniye sürüyor SELECT A.JOBTYPE FROM PRODROUTEJOB A WHERE ((A.DATAAREAID=N'IW') AND ((A.CALCTIMEHOURS<>0) AND (A.JOBTYPE<>3))) AND EXISTS (SELECT 'X' FROM PRODROUTE B WHERE ((B.DATAAREAID=N'IW') AND (((((B.PRODID=A.PRODID) AND ((B.PROPERTYID=N'PR1526157') OR …

3
WHERE koşulu ve GROUP BY ile SQL sorgusu için dizinler
Bir WHEREkoşul ile bir SQL sorgusu için hangi dizinleri kullanmak için belirlemeye çalışıyorum ve GROUP BYşu anda çok yavaş çalışıyor. Sorgum: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id Tabloda şu anda 32.000.000 satır var. Zaman dilimini artırdığımda sorgunun yürütme süresi …

1
SQL Server tahminlerin ilişkili olduğunu nasıl biliyor?
Kötü kardinalite tahmini ile SQL Server 2008 R2 sorgularını (basit indeksleme, güncel istatistikler vb. Rağmen) ve dolayısıyla zayıf sorgu planlarını teşhis ederken, belki de ilgili bir KB makalesi buldum: Düzeltme: Bir sorgu çalıştırdığınızda düşük performans Server 2008 veya SQL Server 2008 R2 veya SQL Server 2012'de ilişkili VE tahminleri içeren …

5
Büyük masalar üzerinde LEFT JOIN'lerle çok yavaş SEÇİM nasıl optimize edilir
Ben googling, kendi kendine eğitim ve saatlerce ama şanssız bir çözüm arıyor. Burada birkaç benzer soru buldum ama bu davada değil. Tablolarım: kişiler (~ 10 milyon satır) özellikler (konum, yaş, ...) kişiler ve nitelikler arasındaki bağlantılar (M: M) (~ 40M satırlar) Tam çöp ~ 280MB Durum:person_id Bazı yerlerden ( location.attribute_value …

2
Bir saniyeden daha kısa bir sürede gerçekleşen engelleme nasıl izlenir - SQL Server
Bir saniyeden daha kısa bir süre içinde gerçekleşen engelleme sorununu gidermeye çalışıyorum. OLTP uygulaması çok hassastır ve üzerinde anlaşılan SLA'ya göre bazı işlemler için 200 ms'den daha kısa bir tepki süresine sahip olmalıdır. Güncellemelerde toplu iş boyutunu küçülterek çözebildiğimiz yeni kod sürümünde bazı kilit yükseltme sorunları yaşadık. Küçük parti boyutunda …

2
PostgreSQL TRIGGER (ları) ölçeklendirme
Postgres mekanizma ölçeklerini nasıl tetikler? Büyük bir PostgreSQL kurulumumuz var ve günlük tablolarını ve TRIGGER (leri) kullanarak olay tabanlı bir sistem uygulamaya çalışıyoruz. Temel olarak, UPDATE / INSERT / DELETE işlemi için bilgilendirilmek istediğimiz her tablo için bir TRIGGER oluşturmak istiyoruz. Bu tetikleyici tetiklendiğinde, daha sonra harici bir hizmetten yoklayacağımız …

1
IN kaçınılmalıdır?
Bazı SQL Server geliştiricileri arasında NOT IN, çok yavaş olan yaygın bir inanç ve sorgular aynı sonucu döndürecek ancak "kötü" anahtar kelimeleri kullanmayacak şekilde yeniden yazılmalıdır. ( örnek ). Bunun bir gerçeği var mı? Örneğin, SQL Server'da (hangi sürüm?) Kullanılan sorguların NOT IN, kullanan eşdeğer bir sorgudan daha kötü bir …

3
IN () kullanarak sorgu performansını iyileştirme
Aşağıdaki SQL sorgusu var: SELECT Event.ID, Event.IATA, Device.Name, EventType.Description, Event.Data1, Event.Data2 Event.PLCTimeStamp, Event.EventTypeID FROM Event INNER JOIN EventType ON EventType.ID = Event.EventTypeID INNER JOIN Device ON Device.ID = Event.DeviceID WHERE Event.EventTypeID IN (3, 30, 40, 41, 42, 46, 49, 50) AND Event.PLCTimeStamp BETWEEN '2011-01-28' AND '2011-01-29' AND Event.IATA LIKE '%0005836217%' …

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.