Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2012 w jednym pliku do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do poprzedniej wersji programu SQL Server 2012 Update.
Symptomy
Załóżmy, że w tym samym czasie na wielu sesjach w programie Microsoft SQL Server 2012 jest uruchomiona wiele procedur składowanych xp_cmdshell . W takiej sytuacji pierwsze wykonanie procedury składowanej xp_cmdshell nie jest wykonywane do czasu ukończenia ostatniego wykonania.
Przyczyna
Ten problem występuje, ponieważ uchwyt jest dziedziczony przez procesy, które są otwierane w chwili uruchamiania xp_cmdshell procedur składowanych w tym samym czasie. Interfejs API CreateProcess wymaga dziedziczenia dojścia do przekierowania standardowego wyjścia i komunikatu o błędzie. Jeśli wiele wykonań procedury składowanej xp_cmdshell zostanie uruchomiona w tym samym czasie, nowo otwarte procesy mogą odziedziczyć dojście z istniejących procesów. Jednak xp_cmdshell procedura składowana oczekuje na zamknięcie dojścia przez wszystkie otwarte procesy. W związku z tym, gdy wiele procesów dziedziczy dojście, wszystkie xp_cmdshell wykonania muszą czekać, aż dojście zostanie zamknięte za pomocą najdłuższego procesu.
Rozwiązanie
Aby rozwiązać ten problem, zastosuj następującą zbiorczą aktualizację. Ta aktualizacja dodaje opcje STARTUPINFOEX API CreateProcess, które uniemożliwiają obsługę dziedziczenia w trakcie procesu krzyżowego.
Informacje o aktualizacji zbiorczej
Pakiet aktualizacji zbiorczej 1 dla programu SQL Server 2012 z dodatkiem Service Pack 1
Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 1. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji dla programu SQL Server 2012 z dodatkiem Service Pack 1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2765331 Pakiet aktualizacji zbiorczej 1 dla programu SQL Server 2012 z dodatkiem Service Pack 1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2012. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2772858 Kompilacje programu SQL Server 2012 wydane po opublikowaniu dodatku Service Pack 1 dla programu SQL Server 2012
Program SQL Server 2012
Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 4. Aby uzyskać więcej informacji na temat uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2012, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2758687 Pakiet aktualizacji zbiorczej 4 dla programu SQL Server 2012Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2012. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2692828 Kompilacje programu SQL Server 2012 wydane po wydaniu programu SQL Server 2012
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Informacje
Aby uzyskać więcej informacji na temat funkcji CreateProcess, przejdź do następującej witryny MSDN w sieci Web:
Ogólne informacje o funkcji CreateProcessAby uzyskać więcej informacji na temat procedury składowanej xp_cmdshell, przejdź do następującej witryny MSDN w sieci Web:
Ogólne informacje na temat procedury składowanej xp_cmdshell Aby uzyskać więcej informacji na temat podobnego problemu, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
315939 PRB: element podrzędny dziedziczy nieprzewidziane uchwyty podczas rozmowy w trakcie procesu CreateProcess