Czy SQL Server wykonuje zapytania równolegle? Innymi słowy, jeśli uruchomię ciężkie zapytanie, którego wykonanie zajmuje 10 sekund, a jednocześnie rozpocznę kolejne ciężkie zapytanie, które zajmie 10 sekund, czy drugie zapytanie faktycznie rozpocznie się po 10 sekundach, czy zaczną oba jednocześnie ?
sql-server
użytkownik369117
źródło
źródło
Odpowiedzi:
Masz na myśli „jednocześnie”. Odpowiedź brzmi: tak, z zastrzeżeniami, które są zbyt szerokie, aby je tutaj omawiać. W rzeczywistości cały punkt RDBMS to współbieżność.
„Parallel” ma dokładne znaczenie w SQL Server: „jedno zapytanie jest rozłożone na więcej niż jeden rdzeń procesora”.
źródło
Dopóki twoje pierwsze zapytanie nie zablokuje tabeli potrzebnej w drugim zapytaniu, będą one działać równolegle.
źródło
Zapytania są uruchamiane równolegle, w miarę możliwości.
Baza danych używa różnych blokad do odczytu i zapisu, w wierszach, blokach lub całych tabelach, w zależności od tego, co robisz.
Jeśli jedno zapytanie odczytuje tylko z tabeli, inne zapytanie może również czytać z tej samej tabeli w tym samym czasie. Jeśli jedno zapytanie aktualizuje niektóre rekordy w tabeli, inne zapytanie może nadal być w stanie odczytać z tabeli, o ile nie odczytuje żadnych rekordów zablokowanych dla aktualizacji.
źródło
Zależy od danych - zwykle działają one równolegle, ale niektóre scenariusze blokowania mogą powodować, że jedno zapytanie czeka na drugie. Oczywiście, jeśli podsystem dyskowy jest słaby i nie masz dużo pamięci RAM, wiele zapytań może działać wolniej.
źródło
DDL (język definicji danych) działa równolegle jak instrukcja SELECT
DML (język modyfikacji danych) nie działa równolegle jak instrukcja INSERT i UPDATE
źródło
Jeśli piszesz zapytania jak poniżej ... będzie działać równolegle
Uwaga - Twoje równoległe zapytanie pojawi się w stanie oczekiwania na wypadek, gdyby jakaś wstawka zbiorcza w tabeli
źródło