«database-internals» etiketlenmiş sorular

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

1
DELUNE - TRUNCATE
Ben DELETEve TRUNCATEkomutları arasındaki farklar hakkında daha iyi bir anlayış kazanmaya çalışıyorum . İçseller hakkındaki düşüncelerim, şu çizgide bir şeyler gösteriyor: DELETE-> veritabanı motoru, satırı ilgili veri sayfalarından ve satırın girildiği tüm dizin sayfalarından bulur ve kaldırır. Bu nedenle, dizinler ne kadar fazla olursa silme o kadar uzun sürer. TRUNCATE …

4
Bir tablonun tanımındaki sütunların sırası önemli midir?
Bir tablo tanımlarken, sütunları mantıksal gruplar halinde ve grupların kendilerini amaçlarına göre sıralamak yararlı olacaktır. Bir tablodaki sütunların mantıksal sıralaması, geliştiriciye anlam taşır ve iyi bir stil elemanıdır. Bu temiz. Ancak net olmayan, bir tablodaki sütunların mantıksal sıralamasının, depolama katmanındaki fiziksel sıralamasını etkileyip etkilemeyeceği veya birinin ilgilenebileceği başka bir etkiye …

2
XML okuyucularla planları optimize etme
Yürütülmesi buradan sorgu varsayılan genişletilmiş olaylar oturumun dışarı çıkmaz olaylarını çekmeye SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE [name] = …

1
Tarama neden bu yüklem için arama yapmaktan daha hızlı?
Beklenmeyen olarak tanımlayacağım bir sorgu performansı sorunu oluşturmayı başardım. İnternete odaklanmış bir cevap arıyorum. Makinemde, aşağıdaki sorgu kümelenmiş bir dizin taraması yapar ve yaklaşık 6.8 saniye CPU süresi alır: SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'10', …


1
Lojik aynı LOB verilerine erişirken farklı okur
Aynı verileri okuyan, ancak çok farklı mantıksal okumalar bildiren üç basit test: Kurmak Aşağıdaki komut dosyası, her biri satırda depolanmasını sağlamak için yeterli veri içeren bir xml sütunu içeren 100 aynı satırdan oluşan bir test tablosu oluşturur . Test veritabanımda, oluşturulan xml uzunluğu, her satır için 20,204 bayttır. -- Conditional …

2
Bir sütunu NOT NULL değerinden NULL olarak değiştirme - Başlığın altında neler oluyor?
İçinde 2.3B satır bulunan bir tablomuz var. Bir sütunu NOT NULL değerinden NULL olarak değiştirmek istiyoruz. Sütun bir dizinde bulunur (kümelenmiş veya PK dizini değil). Veri türü değişmiyor (bu bir INT). Sadece null kabiliyeti. İfade aşağıdaki gibidir: Alter Table dbo.Workflow Alter Column LineId Int NULL İşlem durdurulmadan önce 10'dan fazla …

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
Kimlik sütunundaki dizin kümelenmemeli mi?
Kimlik sütununa sahip bir tablo için, kimlik sütunu için kümelenmiş veya kümelenmemiş bir PK / benzersiz dizin oluşturulmalı mı? Bunun nedeni, sorgular için diğer dizinlerin oluşturulmasıdır. Kümelenmemiş bir dizin (yığın üzerinde) kullanan ve dizin tarafından kapsanmayan sütunları döndüren bir sorgu, ek kümelenmiş dizin b-ağacı arama adımları olmadığından daha az mantıksal …

2
Sütun boyutu arttıktan sonra dizin oluşturmak neden daha uzun sürüyor?
Tedarikçimiz, tüm veritabanındaki hemen hemen her sütunda sütun genişliklerini değiştirdi. Veritabanı yaklaşık 7 TB, 9000+ tablodur. 5.5 milyar satır içeren bir tabloda dizin oluşturmaya çalışıyoruz. Satıcının yeni sürüme geçirilmesinden önce dizini 2 saat içinde oluşturabiliriz. Şimdi günler sürüyor. Yaptıkları herhangi bir varchar (xx) boyutunu varchar'a (256) yükseltmektir. Yani çoğu sütun …

2
Yaprak ve yaprak olmayan sayfalar arasındaki farklar nelerdir?
Bazı dizin kullanım raporları çalıştırıyorum ve Yaprak ve Yaprak olmayan bir tanım elde etmeye çalışıyorum . Hem Yaprak hem de Yaprak Dışı Ekler, Güncellemeler, Silme, Sayfa Birleştirme ve Sayfa Tahsisleri var gibi görünüyor. Bunun ne anlama geldiğini veya birinin diğerinden daha iyi olup olmadığını gerçekten bilmiyorum. Birisi her birinin basit …

1
Kümelenmiş sütun deposunda kümelenmemiş dizin depolaması
SQL Server'da, bir satır deposu tablosundaki benzersiz kümelenmemiş bir dizin , kümelenmemiş dizin yapısının tüm düzeylerinde temel nesnenin yer işaretini (RID veya kümeleme anahtarı) içerir. Yer imi, tüm dizin düzeylerinde kümelenmemiş dizin anahtarının bir parçası olarak saklanır . Öte yandan, kümelenmemiş dizin benzersizse , yer işareti yalnızca dizinin yaprak düzeyinde …


1
Varchar (n) için ek yük nedir?
Ben bu parçanın anlamını sormak istedim Postgres doc ilişkin varchar(n)tip: Kısa bir dize (126 bayta kadar) için depolama gereksinimi, 1 bayt artı karakter durumunda boşluk dolgusu içeren gerçek dizedir. Daha uzun dizelerde 1 yerine 4 bayt ek yük vardır. Bir alanım olduğunu varsayalım varchar(255). Ve şimdi, aşağıdaki ifadeler: Bu alan …

1
Histogram dışındaki kardinalite tahmini
Kurmak Bir kardinalite tahminini anlamakta sorun yaşıyorum. İşte benim test kurulumum: Stack Overflow veritabanının 2010 sürümü SQL Server 2017 CU15 + GDR (KB4505225) - 14.0.3192.2 yeni CE (uyumluluk seviyesi 140) Bu proc var: USE StackOverflow2010; GO CREATE OR ALTER PROCEDURE #sp_PostsByCommentCount @CommentCount int AS BEGIN SELECT * FROM dbo.Posts p …

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.