Udostępnij za pośrednictwem


Omówienie integracji CLR

Common language runtime (CLR) jest sercem Microsoft.NET Framework i zapewnia środowisko wykonawcze dla wszystkich.NET Framework kod.Kod uruchamiany w ramach środowiska CLR nazywa kod zarządzany.Środowisko CLR zapewnia różnych funkcji i usług niezbędnych do wykonywania programu, w tym kompilację just-in-czas (JIT), przydzielanie i zarządzanie pamięcią, wymuszając zabezpieczenia typów, obsługi, wyjątków wątek zarządzania i zabezpieczeń.Zobacz.NET Framework SDK więcej informacji.

Z CLR obsługiwanej w Microsoft SQL Server (nazywany integracja CLR), mogą tworzyć procedur przechowywanych, wyzwalaczy, funkcji zdefiniowanych przez użytkownika, typy zdefiniowane przez użytkownika i agregatów zdefiniowane przez użytkownika w kod zarządzany.Ponieważ kompiluje kod zarządzany kod macierzysty przed jej wykonaniem, można osiągnąć wzrost wydajności 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.

Zalety integracji CLR

Transact-SQL została opracowana specjalnie dla danych bezpośredni dostęp i manipulowanie w bazie danych.Gdy języka Transact-SQL excels dostępu do danych i zarządzania, nie jest językiem programowania pełni funkcjonalnymi.Na przykład języka Transact-SQL nie obsługuje tablic, kolekcje, pętli for each, przesuwania bitowego lub klasy.Podczas gdy niektóre konstrukcje te można pozorować w języku Transact-SQL, kod zarządzany zostały zintegrowane obsługę tych konstrukcje.W zależności od scenariusza funkcje te umożliwiają nakazującym wdrożenie niektórych funkcji bazy danych w kod zarządzany.

Microsoft Visual Basic.NET i Microsoft Visual C# oferują zorientowane obiektowo możliwości, takich jak hermetyzacji, dziedziczenie i polimorfizmu.Kodu powiązanego można teraz łatwo zorganizowane w klasach i przestrzenie nazw.Podczas pracy z dużymi ilościami kod serwera pozwala to na łatwe organizowanie i utrzymać swój kod.

Kod zarządzany jest lepiej niż języka Transact-SQL dla obliczeń i logiki wykonywanie skomplikowanych i funkcje obsługę wielu złożonych zadań, w tym ciąg obsługi i wyrażeń regularnych.W funkcji.NET Framework biblioteki, masz dostęp do tysięcy wbudowanych klas i procedur.Mogą to być łatwo dostępne z dowolnego procedura składowana, wyzwalacza lub użytkownika określonych funkcja.Biblioteka klasy Base (BCL) zawiera klas udostępniających funkcjonalności dla ciąg manipulacji zaawansowane operacje matematyczne, dostęp do plików, kryptografia i więcej.

Ostrzeżenie

Wiele z tych klas są dostępne do użytku z kodem CLR w programie SQL Server, które nie są właściwe do użycia po stronie serwera (na przykład klasy windowing) nie są dostępne.Aby uzyskać więcej informacji, zobacz Obsługiwane.NET Framework bibliotek.

Jedną z zalet kod zarządzany jest typ bezpieczeństwa lub zapewnienia, że kod dostępu do typów tylko na wyraźnie określone, dopuszczalne sposoby.Przed wykonaniem kod zarządzany środowiska CLR weryfikuje, że kod jest bezpieczne.Na przykład kod jest sprawdzany, zapewniające pamięci nie jest odczytywany, nie wcześniej zostały zapisane.Środowisko CLR może także pomóc zapewnić kod nie manipuluje niezarządzanych pamięci.

Integracja CLR oferuje potencjał lepszą wydajność.Aby uzyskać informacje, zobacz Wydajność CLR integracji.

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

Podczas pisania, procedur przechowywanych, wyzwalaczy i funkcje zdefiniowane przez użytkownika, jest jednej decyzji, należy, czy użyć tradycyjnego języka Transact-SQL lub.Język NET Framework, takich jak Visual Basic.NET lub Visual C#.Kod będzie wykonywał głównie dostępu do danych z niewielkiej lub żadnej Logika proceduralna używać języka Transact-SQL.Użyj kod zarządzany intensywnie wykorzystującą Procesor funkcje i procedury, które funkcja logiki złożonych lub gdy chcesz korzystać z BCL z.NET Framework.

Wybieranie między wykonanie na serwerze i wykonanie klienta

Innym czynnikiem w decyzji o tym, czy użyć języka Transact-SQL lub kod zarządzany jest, gdzie chcesz kod znajdują się komputera serwera lub klient komputera.Języka Transact-SQL i kod zarządzany można uruchomić na serwerze.Umieszcza kod i dane blisko siebie i pozwala na wykorzystanie mocy obliczeniowej serwera.Z drugiej strony możesz uniknąć wprowadzania zadań intensywnego procesora na serwerze bazy danych.Dziś większości komputerów klienckich są bardzo wydajne i mogą chcieć skorzystać z tej mocy obliczeniowej przez umieszczenie kodu tyle możliwie klient.Można uruchamiać kodu zarządzanego, na klient komputera, a nie języka Transact-SQL.

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

Rozszerzone procedury przechowywane mogą być wbudowane do wykonywania funkcji niedostępnych w przypadku procedury przechowywanej języka Transact-SQL.Rozszerzonych procedur przechowywanych jednak naruszyć integralność procesu SQL Server podczas kod zarządzany jest zweryfikowany, być typ palety nie.Dalsze zarządzanie pamięcią planowania wątków i włókna i usługi synchronizacji są bardziej głęboko zintegrowane między kod zarządzany środowiska CLR i SQL Server.Integracja CLR masz bardziej bezpieczną niż rozszerzonych procedur przechowywanych Pisanie procedur przechowywanych, należy wykonać zadania nie jest możliwe w języku Transact-SQL.Aby uzyskać informacje dotyczące integracja środowiska CLR i rozszerzone procedury przechowywane, zobacz Wydajność CLR integracji.