«database-internals» etiketlenmiş sorular

Veritabanı motorunun iç işleri ile ilgili teknik sorular için.

2
Temp masası neden Cadılar Bayramı Sorunu'na istekli bir makaradan daha verimli bir çözümdür?
Bir kaynak tablodan yalnızca hedef tabloda yoksa satır ekleyen aşağıdaki sorguyu göz önünde bulundurun: INSERT INTO dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR WITH (TABLOCK) SELECT maybe_new_rows.ID FROM dbo.A_HEAP_OF_MOSTLY_NEW_ROWS maybe_new_rows WHERE NOT EXISTS ( SELECT 1 FROM dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR halloween WHERE maybe_new_rows.ID = halloween.ID ) OPTION (MAXDOP 1, QUERYTRACEON 7470); Olası bir plan şekli bir birleştirme birleşimi …

4
Endeks Benzersizliği Yükü
Ofisimdeki çeşitli geliştiricilerle bir endeksin maliyeti hakkında ve benzersizliğin yararlı mı yoksa maliyetli mi (muhtemelen her ikisi de) olup olmadığı konusunda sürekli bir tartışma yaşıyorum. Sorunun en önemli noktası rakip kaynaklarımızdır. Arka fon Daha önce Uniquebir Insertişlemin B ağacına sığdığı yeri dolaylı olarak kontrol ettiğinden ve benzersiz olmayan bir dizinde …

2
FILESTREAM Insider Bilgi Arayışı
FILESTREAM özelliği Microsoft SQL Server 2012'de etkinleştirildiğinde, SQL Server sistemde "gizli" bir paylaşım oluşturur. Pay aşağıdaki gibi tanımlanır: Sharename FILESTREAM_SHARE Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE Remark SQL Server FILESTREAM share Maximum users unlimited Users Caching Manual caching of documents Permissions NT-AUTHORITY\Authenticated Users, FULL Ad, SQL Server Yapılandırma Yöneticisi'nde FILESTREAM'i ilk olarak yapılandırırken sağladığınız …

2
MySQL neden SELECT takma adlarını kullanmanıza izin veriyor?
SQL'de, bildiğim kadarıyla, kavramsal yorumlama sırası olan mantıksal sorgu işleme sırası FROM ile şu şekilde başlar: DAN NEREDE GRUPLA HAVING SEÇ TARAFINDAN SİPARİŞ Bu listeyi izleyerek neden WHERE yan tümcesinde SELECT takma adlarına sahip olamayacağınızı görmek kolaydır, çünkü takma ad henüz oluşturulmamıştır. T-SQL (SQL Server) bunu kesinlikle takip eder ve …


1
SQL Server'ın bir sistem yordamına iletilen dize için bir nesne adı ile işlem yapmasına izin veren
Bir nesne adını sistem saklı yordamına geçirmenin yasal olmasına ne neden olur sp_helptext? Hangi mekanizma nesne adını bir dizeye dönüştürür? Örneğin -- works sp_helptext myproc sp_helptext [myproc] sp_helptext [dbo.myproc] -- and behaves the same as a string sp_helptext 'myproc' sp_helptext 'dbo.myproc' -- does not work sp_helptext dbo.myproc -- Msg 102, …

2
Bu iki SQL Server geri alma işlemi nasıl farklıdır?
SQL Server 2008 R2'de, bu iki geri alma nasıl farklıdır: ALTERBirkaç dakika boyunca bir ifade çalıştırın ve ardından 'Yürütmeyi İptal Et'e basın. Tamamen geri almak birkaç dakika alır. Aynı ALTERifadeyi çalıştırın , ancak bu LDFdosyanın başarıyla tamamlanması için yeterince büyük olmadığından emin olun . Bir kez LDFsınır karşılanmaktadır ve hiçbir …


1
Bu benzer sorgular neden farklı optimizasyon aşamaları kullanıyor (işlem işleme ile hızlı plan arasında)?
Bu bağlantı öğesindeki örnek kod Nerede bir hata gösterir SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item = L2.csv_item Doğru sonuçları verir. Ancak aşağıdakiler yanlış sonuçlar döndürür (2014'te yeni Kardinalite Tahmincisi'ni kullanarak) SELECT (SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item = L2.csv_item) L2 …

1
Bu akış neden gereklidir?
Bu sorguyu kontrol edin. Oldukça basit (tablo ve dizin tanımları ve repro komut dosyası için gönderinin sonuna bakın): SELECT MAX(Revision) FROM dbo.TheOneders WHERE Id = 1 AND 1 = (SELECT 1); Not: "VE 1 = (SEÇ 1), bu sorgunun sorunu otomatik olarak değiştirdiğini ve bununla ilgili kafa karıştırıcı olduğunu hissettiğimi …

1
SQL Server fiziksel olarak bir tablo için KİMLİK DEĞERİ'ni depolar?
Birisinin beni bu konuda doğru yöne yönlendirebileceğini umuyorum. İşte şimdiye kadar yaptığım çalışmalar. SELECT * FROM sys.identity_columns"last_value" değerini veren bir sistem görünümüdür, ancak bu görünümün tanımı dahili bir işlev kullanır IdentityProperty(colName, 'LastValue')- bu bir çıkmaza (orada bir sistem tablosundan çekmemekte). İnternetteki her yerde (baktım) DBCC IDENT_..., değeri ortaya çıkarmak için …


1
Belirli bir tablo için ROW_OVERFLOW_DATA sayfalarını listeleyin
ROW_OVERFLOW_DATA içeren satırları olan bir tablo için sayfaların listesini almaya çalışıyorum. sys.db_db_database_page_allocationsAyrılmamış DMV'den ayrılan sayfaların listesini alabilirim , ancak bu DMV'nin çıktısında listelenen ROW_OVERFLOW_DATA sayfası yok gibi görünüyor. Sadece bulamadığım başka bir DMV var mı? Minimum, tam ve (umarım!) Doğrulanabilir örnek: USE tempdb; IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL DROP …


2
Yuvalanmış döngüler neden yalnızca sol birleşimleri destekler?
Craig Freedman'ın Nested Loops Join adlı blogunda, yuvalanmış döngülerin neden sağ dış bir birleşimi destekleyemediğini açıklar: Sorun, iç tablayı birden çok kez taramamızdır - dış birleşimin her satırı için bir kez. Bu çoklu taramalar sırasında aynı iç sıralarla birçok kez karşılaşabiliriz. Hangi noktada belirli bir iç sıranın katılmadığı veya katılmayacağı …

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.