2012-01-10 10 views
9

Mam bazę danych z klientem, który wydaje się tracić dane z dnia na dzień. Wprowadzają rekordy i opuszczają system, a następnie twierdzą, że nie będą mogli ich znaleźć ponownie następnego dnia.Brakujące rekordy w tabelach serwera SQL

Numery identyfikacyjne w głównym indeksie kluczy w tabelach, których dotyczy problem, mają luki, które powinny być automatycznie zwiększane i ciągłe. Klient nie ma możliwości usuwania rekordów, więc wydaje się, że istnieje problem.

Próbowałem użyć DBCC CHECKDB i DBCC REINDEX, ale rekordy nie pojawiają się ponownie i problem jest kontynuowany.

Na wyjściu z aplikacji VB.NET 2010, używam następujących napisać rekord dla każdej tabeli:

Me.binds_Tablename1.EndEdit() 
Me.binds_Tablename2.EndEdit() 
TableAdapterManager.UpdateAll(Me.Dataset_1) 

System ten pracował dobrze przez 2 lata, ale obecnie gra w górę. Czy problemem może być uszkodzenie bazy danych?

+0

Trudno powiedzieć, co się dzieje! Czy użyłeś audytu serwera sql i specyfikacji inspekcji bazy danych, aby dowiedzieć się, kto/który proces uzyskał dostęp do tabel za pomocą instrukcji delete? – Mithrandir

+0

Prawdopodobnie nie jest to baza danych. Brzytwa Ockhama wskazywałaby, że jeśli ani baza danych, ani kod nie zmieniły się w ostatnim czasie, należy przyjrzeć się danym/użytkownikom/fazom księżyca itd. Jako punkt wyjścia. – Simon

Odpowiedz

0

To teraz wydaje się być posortowane - klient uruchomił zwierciadlany dysk twardy, z którego jeden zaczynał przewrócić się dzięki raportom błędów SMART. Ponieważ został on zastąpiony, problem nie powtórzył się.

Dzięki za pomoc!

2

W przypadku użycia pamięci metoda TableAdapterManager.UpdateAll() zawija aktualizacje w transakcji. Automatyczne przyrosty pól zwiększają się poza transakcjami, więc przypuszczam, że niektóre z Twoich transakcji mogą podlegać wycofywaniu.

+0

Dzięki, sprawdzę to. –

3

ponieważ dopiero się zaczęła, to możliwe, że są one wprowadzania 2012 gdzieś czy to związane jest z roku 2012, może ta wartość nie istnieje w tabeli odnośników, transakcja zostanie wycofana

Kiedy transakcję przywraca wartość tożsamości NIE jest ponownie wykorzystywany, dlatego pojawiają się luki, musisz dowiedzieć się, dlaczego masz wycofane.

+0

Dzięki - kwestia faktycznie rozpoczęła się pod koniec zeszłego roku. Sprawdzę jednak rollbacks. –

Powiązane problemy