Udostępnij za pośrednictwem


Omówienie integracja CLR

Aparatu plików wykonywalnych języka wspólnego (CLR) jest sercem Microsoft .NET Framework i zapewnia środowisko wykonywania dla całego kodu systemu .NET Framework.Kod, który jest uruchamiany w ramach środowiska CLR jest określane jako kod zarządzany.Środowisko CLR udostępnia różne funkcje i usługi wymagane do wykonywania programu, w czasie kompilacji (JIT), w tym przydzielania i zarządzania nimi pamięci, wymuszając zabezpieczenia typów, obsługa wyjątków, zarządzanie wątkami i zabezpieczeń.Zobacz .NET Framework SDK, aby uzyskać więcej informacji.

Ze środowiska CLR w Microsoft SQL Server (nazywane integracja CLR) mogą autoryzować procedur przechowywanych, wyzwalaczy, funkcji zdefiniowanych przez użytkownika, typy zdefiniowane przez użytkownika i zagregowanych przez użytkownika w kodzie zarządzanym.Ponieważ kompiluje kod zarządzany do kodu macierzystego przed do wykonania, można osiągnąć zwiększa wydajność znaczące w niektórych scenariuszach.

Managed code uses Code Access Security (CAS) to prevent assemblies from performing certain operations.SQL Server uses CAS to help secure the managed code and prevent compromise of the operating system or database server.

Korzyści wynikające z integracja CLR

Języka Transact-SQL została opracowana specjalnie dla dostępu do danych bezpośrednio i manipulowania nimi w bazie danych.Podczas gdy języka Transact-SQL excels na dostęp do danych i zarządzania, nie jest full-fledged języka programowania.Na przykład języka Transact-SQL nie obsługuje tablic, kolekcje, pętli for each, przesuwanie bitów lub klas.W czasie, gdy niektóre z tych konstrukcje mogą być symulowane w języku Transact-SQL, kod zarządzany zostały zintegrowane obsługę te elementy.W zależności od scenariusza funkcje te umożliwiają istotny powód, aby zaimplementować niektórych funkcji bazy danych w kodzie zarządzanym.

Microsoft Visual Basic .NET i Microsoft Visual C# oferują zorientowane obiektowo możliwości, takich jak hermetyzacja, dziedziczenie i polimorfizmu.Kod powiązanych teraz można łatwo zorganizować w klas i obszarów nazw.Podczas pracy z dużymi ilościami kod serwera umożliwia więcej można łatwo organizację i zachowanie kodu.

Kod zarządzany jest lepiej dostosowane niż języka Transact-SQL do obliczeń i logiki wykonywanie skomplikowanych, funkcjach i obsługę wielu złożonych zadań, w tym ciąg obsługi i wyrażeń regularnych.Z funkcji, znajdujących się w bibliotece systemu .NET Framework użytkownik ma dostęp do tysięcy wstępnie klas i procedur.Mogą to być łatwo dostępne z dowolnego procedura przechowywana, wyzwalacza lub użytkowników określonych funkcja.Biblioteki Base Class (BCL) zawiera klasy, które oferują funkcje dla manipulowanie ciągami, operacje matematyczne zaawansowanych, dostęp do plików, kryptografia i inne.

Uwaga

Wiele z tych klas są dostępne do użytku z kodem CLR w programie SQL Server, które nie są odpowiednie do użycia po stronie serwera (na przykład windowing grupy), nie są dostępne.Aby uzyskać więcej informacji zobaczObsługiwany system .NET Framework biblioteki.

Jedną z zalet kod zarządzany jest typu bezpieczeństwa i zapewnienia, że kod dostęp do typów tylko w dobrze określone, dozwolone sposoby.Przed wykonaniem kod zarządzany środowiska CLR weryfikuje, że kod jest bezpieczne.Na przykład kod jest sprawdzana, aby zapewnić, że nie pamięci jest do odczytu, nie uprzednio zapisano.Środowisko CLR pomaga zapewnić, że kod nie manipulować niezarządzanego pamięci.

Integracja CLR oferuje możliwości poprawy wydajności.Aby uzyskać informacje Zobacz Wydajność CLR integracja.

Wybieranie między języka Transact-SQL i kod zarządzany

Podczas pisania procedur przechowywanych, wyzwalaczy i funkcji zdefiniowanych przez użytkownika, jeden decyzji, które należy wykonać jest, czy przy użyciu tradycyjnych języka Transact-SQL czy język systemu .NET Framework, takich jak Visual Basic .NET i Visual C#.Za pomocą języka Transact-SQL, gdy kod będzie wykonywać przede wszystkim dostępu do danych w logice procedur niewielkie lub zerowe.Obciążenie PROCESORA, funkcje i procedury, które funkcja złożonej logiki, za pomocą kod zarządzany lub kiedy użytkownik chce korzystać z BCL systemu .NET Framework.

Wybieranie między wykonanie na serwerze i wykonanie klient

Innym czynnikiem w decyzji o tym, czy do korzystania z języka Transact-SQL lub kod zarządzany jest, gdy chcesz kod znajdują się na komputerze serwera lub klient komputera.Kod zarządzany i języka Transact-SQL można uruchamiać na serwerze.Umieszcza kod i dane blisko siebie i pozwala wykorzystać zalety mocy obliczeniowej serwera.Z drugiej strony warto unikać umieszczania zadaniami intensywnie wykorzystujących procesora na serwerze bazy danych.Najbardziej klient dzisiaj komputery są bardzo zaawansowanym i możesz skorzystać z tej możliwości przetwarzania umieszczając możliwie jak najwięcej kodu w klient.Kod zarządzany można uruchomić na komputerze klienckim, a nie języka Transact-SQL.

Wybieranie między rozszerzonych procedur przechowywanych i kod zarządzany

Wykonywanie funkcji nie jest możliwe z procedury przechowywanej języka Transact-SQL może być budowany rozszerzonych procedur przechowywanych.Rozszerzone procedury przechowywane jednak naruszyć integralność procesu programu SQL Server podczas kod zarządzany, który został zweryfikowany jako typ palety nie.Dalsze zarządzanie pamięcią planowania wątków i fibers i synchronizacji usług są bardziej głęboko scałkowanej w przedziale kod zarządzany środowiska CLR i programu SQL Server.W przypadku integracja CLR masz bezpieczniejszy sposób niż rozszerzonych procedur przechowywanych do zapisania procedury przechowywane, konieczne jest wykonanie zadania nie jest możliwe w języku Transact-SQL.Aby uzyskać więcej informacji na temat integracja środowiska CLR i rozszerzone procedury przechowywane zobacz Wydajność CLR integracja.