Ich bin komplett neue SQL/Datenbank-Anwendungen und probiere eine einfache Kontaktmanagement-Anwendung mit Visual Studio 2015 C#. Ich verwende 'SQL Express LocalDB'. Ich habe auf Google gelesen, dass es für Entwicklungszwecke gedacht ist, aber Microsoft erwähnt auch, dass es für Produktionszwecke auch verwendet werden könnte.C# SQL LocalDB Anwendung Langsame Leistung
Mein Problem ist, dass, wenn ich die Anwendung von meinem Entwicklungssystem ausprobiere, die Anwendung das erste Mal einige Sekunden braucht, um zu laden, aber danach wird jede Abfrage schnell ausgeführt. Wenn ich dies auf einem meiner Freunde-System versuchte, dauert es jedes Mal, wenn ich versuche, eine Abfrage zu verwenden. Die Datenbank besteht nur aus 20-30 Datensätzen.
Ich erstelle neue Verbindung mit 'neue SqlConnection' und dann Befehl ausgeführt von 'neuen SqlCommand' und nach der Ausführung der Abfrage schließe ich die Verbindung. Hier
ist der Code-Schnipsel aus meiner app
SqlConnection sqlConnection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = ""C:\ContactsDB.mdf""; Integrated Security = True; Connect Timeout = 30";);
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlConnection;
sqlCmd.CommandText = "SELECT Id, first_name, last_name from ContactsMaster ORDER BY first_name";
sqlConnection.Open();
SqlDataReader reader = sqlCmd.ExecuteReader();
try
{
while (reader.Read())
{
ListViewItem lvi = new ListViewItem(reader["first_name"]);
listViewItems.Add(lvi);
lvi.SubItems.Add(reader[0].ToString());
}
}
finally
{
reader.Close();
}
sqlConnection.Close();
Q. Sollte ich die Verbindung öffnen, die ganze Zeit, während App läuft? Ich denke nicht, dass dies vorgeschlagen werden sollte. Als ob die App abstürzt, kann die Datenbank beschädigt werden.
Einer der Hintergründe, die sagen, dass LocalDB die Verbindung alle neuen Millisekunden schließt. Also sollte ich die Datenbank alle paar Millisekunden pingen? Oder sollte ich localdb überhaupt nicht in der Produktion verwenden?
Ich möchte die App so machen, dass die Anforderung wirklich niedrig die Datenbankvoraussetzungen rewaridng. Wie LocalDB Installation ist wirklich nahtlos.
Ich habe SQL Server Express nicht verwendet, ist die Express-Installation auch nahtlos wie LocalDB und kann ich die Verbindungszeichenfolge wie LocalDB auch in Express verwenden und den .mdf-Dateinamen direkt angeben?
Hier sind die Updates, nach dem Start der App das erste Mal, wenn wir eine Verbindung zu SQL LocalDB .mdf Datenbank herstellen, die sqlConnection.open() Funktion dauert etwa 10-15 Sekunden. Später in dieser Sitzung dauert das Öffnen der db ungefähr 2 Sekunden. Ich möchte diese 10-15 Sekunden Zeit minimieren. –