Belirli tablolarda günlüğe kaydetmeyi devre dışı bırakma


9

SQL Server 2005 kullanıyorum. Toplam bilgi içeren iki tablo var. Bilgiler sürekli olarak güncellenmekte ve günde yaklaşık 5 GB günlük verileri üretmektedir. (Bu, tüm veritabanından daha büyük!) Geri alma gerçekten gerekli olmadığından, bu tablolarda günlüğe kaydetmeyi devre dışı bırakmak istiyorum. Ancak veritabanındaki diğer tablolarda günlüğe tutmak istiyorum.

Veritabanı içindeki belirli tablolarda günlüğe kaydetmeyi devre dışı bırakmak mümkün müdür? Değilse, iki tabloyu aynı şemaya yerleştirip şemada günlüğe kaydetmeyi devre dışı bırakabilir miyim? İki tabloyu ayrı bir veritabanına taşımak ve orada oturum açmayı devre dışı bırakmak için tek seçenek var mı?

Güncelleme: Sanırım neden bu tablolardaki etkinliği günlüğe kaydetmem gerekmediğini açıklayacağım.

İki tablo GPS verileri ile doldurulur, böylece oldukça büyürler. İlk tablo, sahadaki altı Android tablosundan ham konumları yakalamaktır. Tabletlerin her birinden yeni veriler her 5-10 saniyede bir gelir. Bu bilgiler daha sonra locationA, locationB, travelTime olarak toplanır. Amaç, gerçek sürüş verilerine dayanarak, sonuç olarak tüm konumlar arasında en kısa seyahat sürelerine sahip olmaktır. Veriler sadece küçük bir şehir içindir ve sadece dört ondalık basamak için doğrudur, bu nedenle yönetilebilir. Bununla birlikte, yeni ham veriler geldikçe, güncellenmesi gereken daha yavaş seyahat süreleri ve eklenmesi gereken yeni süreler vardır.

Ham veriler toplandıktan sonra temizlenir. Daha uzun seyahat sürelerine geri gitmiyoruz, bu yüzden bu tablolarda geri dönmenin çok fazla önemi yok.


Yanıtlar:


8
  • Veritabanı içindeki belirli tablolarda günlüğe kaydetmeyi devre dışı bırakmak mümkün müdür?
  • İki tabloyu aynı şemaya yerleştirip şemada günlüğe kaydetmeyi devre dışı bırakabilir miyim?
  • İki tabloyu ayrı bir veritabanına taşımak ve orada oturum açmayı devre dışı bırakmak için tek seçenek var mı?

Kullanıcı işlemlerinin günlüğü devre dışı bırakılamaz.

Denilen operasyonların sınıf vardır minimal-günlüğe işlemleri yalnızca işlem alınabilmesine olanak sağlar geri (aynı zamanda rulo edememek aksine ileri ). Ancak, yaptığınız şeyin, bunun uygulanması için gereken kriterleri karşılayacağı gibi görünmüyor ya da bunun sorunu zaten çözeceğini düşünmüyorum.

SQL Server çözümü, SIMPLEkurtarma tablolarında kurtarma olduğunu varsayalım toplama sonuçları veritabanından ayrı olarak kurtarma yeni bir veritabanına iniş olacaktır FULL. Bu , kayıt hacmini azaltmazken , veri yükleri tarafından oluşturulan günlüğü yedekleme ihtiyacını ortadan kaldırır . (Benim blog yazısı bakınız burada kayıtları hakkında ve bazı faktörleri bir veritabanının kurtarma modeli seçiminde içeriyordu.)

Tabloları başka bir veritabanına ayırmak, günlük dosyasını daha hızlı bir G / Ç alt sistemine, muhtemelen küçük bir dizi yerel olarak bağlı katı hal sürücüsüne yerleştirme esnekliği sağlayacaktır.

Ayrıca, SQL Server'ın sorunu çözmek için en iyi çözüm olmadığını düşünün. Belirli tablolar için günlüğe kaydetmeyi tamamen devre dışı bırakma olanağı sunan başka RDBMS çözümleri de vardır. Veriler başka bir sistemde sahnelenebilir ve toplanabilir ve sonuçlar, tam günlük kaydı ve yedeklemelerle iyi korunan mevcut SQL Server veritabanıyla birleştirilebilir.


@dangowans: Rica ederim.
Jon Seigel

3

Hayır, şema, tablo veya veritabanı düzeyinden bağımsız olarak SQL Server'da günlüğe kaydetmeyi engellemenin bir yolu yoktur.

Gerçekte, SQL Server veritabanında değişiklik veya değişiklik yapan her işlem, anlık görüntü yalıtımı kullanıldığında TempDB içeren sürüm deposu ile ilgili işlemler dışında günlüğe kaydedilir. (işlem günlüğüne giriş yapmak, işlemin geri alınmasını garanti eder (Belirli işlemler için kurtarma modelini BULK Logged olarak değiştirerek günlüğü azaltabilirsiniz (en az günlüğe kaydedilmiş işlemler denir) --- burada SQL Server Books Online'da bu konuda daha fazla bilgi edinebilirsiniz


0

Cevap, her zaman olduğu gibi, değişir.
Söylediğin zaman:

Toplam bilgi içeren iki tablo var. Bilgiler sürekli güncelleniyor

Ne tür bir toplama bu?
Bunun yerine bir VIEW kullanmayı deneyin, güncelleme gerekmiyor ve günlük kaydı yok.

Bu bir seçenek değilse, daha kısa işlemleri kullanmayı ve aralarında günlüğü yedeklemeyi deneyin.

Farklı bir Veritabanı kullanmak, güvenlik yönetimi yükü vb. Anlamına gelir ve kendi işlem günlüğüne sahip olur (günlük yazılan SIMPLE kurtarma modeli ile bile, SQL Server günlüğü otomatik olarak keser, ancak disk alanını serbest bırakmaz), bu yüzden bu seçeneği önermem .


Soruyu, gerçekleşmekte olan toplama türüyle güncelledim.
dangowans

@dangowans Toplu olarak kaydedilen kurtarma modelini düşünüyorum, DRP'niz zaman içinde bir geri yükleme gerçekleştirme yeteneğine sahip mi? Çoğaltma kullanıyor musunuz? minimum giriş işlemleri
Roi Gavish
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.