Link do artykułu jest następujący:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Czy SqlConnection jest bezpieczny w wątkach?
Wiadomo, że użycie połączenia do wykonania instrukcji SQL w środowisku wielowątkowym jestNiebezpieczneCel.
SqlConnection nie jest bezpieczny dla wątków, więc wielowątkowość musi być problemem. W rzeczywistości .net automatycznie zarządza pulą połączeń, o ile ciąg połączeń jest taki sam (musi być dokładnie taki sam), to w tej samej puli, a open i close faktycznie pobierają połączenie z puli i oddają je z powrotem do puli, co nie powoduje problemów z wydajnością. Dlatego po otwarciu każdego połączenia należy je jak najszybciej zamknąć po użyciu, aby połączenie mogło zostać ponownie włączone do puli dla innych programów.
2: Dlaczego ludzie wciąż używają powyższej metody pisania do tworzenia Relacji?
Myślę, że mogą myśleć, że tworzenie wielu połączeń jest czasochłonne, a wiele połączeń zajmuje pamięć, wpływa na wydajność itd.
3: Czy każdy nowy SqlConnection zajmuje pamięć i zasoby, co wpływa na wydajność?
To jest ślepe myślenie, ślepe martwienie się.
Ponieważ"Tworzenie wielu połączeń" niekoniecznie oznacza tworzenie wielu nowych połączeń z bazą danychPołączenie z bazą danych jest cennym zasobem, z punktu widzenia MS SQL Server to źródło jest zoptymalizowane wewnętrznie, a połączenie ponownie wykorzystywane.
Pula połączeń jest dostarczana przez .net, w ciągu połączeń jest właściwość Pooling, domyślna jest true, czyli pula połączeń jest domyślnie włączona, nie ma to nic wspólnego z SQL Server, jeśli zapiszesz Pooling=false w ciągu połączeń, to nie ma puli połączeń, to jest całkowicie . Optymalizacja .NET.
Badanie konsekwencji używania tego samego połączenia bazy danych w wielu wątkach Link do artykułu: http://www.th7.cn/Program/java/201503/415005.shtml
Podsumowanie: W środowisku wielowątkowym użycie pojedynczego połączenia może powodować zamieszanie w transakcjach bez bezpiecznej obsługi połączenia w wątkach.... Wpływa na wykorzystanie transakcji JDBC...
|