Verilerinizi Access'ten SQL Server'a geçirdikten sonra, artık şirket içi veya karma bir Azure bulut çözümü olabilecek bir istemci/sunucu veritabanınız vardır. Her iki durumda da artık Access gösterim katmanı ve SQL Server da veri katmanıdır. Şimdi çözümünüzün çeşitli yönlerini, özellikle de sorgu performansını, güvenliği ve iş sürekliliğini yeniden düşünmek için uygun bir zamandır; böylelikle veritabanı çözümünüzü geliştirebilir ve ölçeklendirebilirsiniz.
Access kullanıcısının önce SQL Server ve Azure belgelerini karşılaması göz korkutucu olabilir. Bundan dolayı sizin için önemli konularda size yol gösterecek bir tur rehberi gerekir. Bu geziyi tamamladıktan sonra veritabanı teknolojisindeki ilerlemeleri keşfetmeye ve daha uzun bir yolculuk yapmaya hazır olacaksınız.
Bu Makalede
İş sürekliliğini sağlama
Access çözümünüz için, çözümünüzü en az kesintiyle sürekli çalışır durumda tutmak istersiniz ama Access arka uç veritabanıyla seçenekleriniz sınırlıdır. Verilerinizi koruma açısından Access veritabanınızı yedeklemek çok önemlidir ama bunun için kullanıcılarınızı çevrimdışına almanız gerekir. Bir de donanım/yazılım bakımı yükseltmelerinin, ağ veya güç kesintilerinin, donanım arızasının, güvenlik sızıntılarının, hatta siber saldırıların neden olduğu planlanmamış kapalı kalma süreleri vardır. Kapalı kalma sürelerini ve bunun işlerinize etkisini en aza indirmek için, SQL Server veritabanını kullanıldığı sırada yedekleyebilirsiniz. Bunun yanı sıra SQL Server yüksek kullanılabilirlik (HA) ve olağanüstü durum kurtarma (DR) stratejileri de sunar. Birleştirilmiş bu iki teknoloji HADR olarak adlandırılır. Daha fazla bilgi için bkz. İş sürekliliği ve veritabanı kurtarma ve SQL Server ile iş sürekliliğini yönlendirme (e-kitap).
Kullanımdayken yedekleme
SQL Server, veritabanı çalışırken yapılabilen bir çevrimiçi yedekleme işlemi kullanır. Tam yedekleme, kısmi yedekleme veya dosya yedeklemesi yapabilirsiniz. Eksiksiz bir geri yükleme işlemini güvence altına almak için yedeklemede veriler ve işlem günlükleri kopyalanır. Özellikle şirket içi bir çözümde, basit ve tam kurtarma seçenekleri arasındaki farklara ve bunların işlem günlüğünün büyümesini nasıl etkilediğine dikkat edin. Daha fazla bilgi için bkz . Kurtarma Modelleri.
Dosya yönetimi ve veritabanı küçültme işlemleri dışında yedekleme işlemlerinin çoğu hemen gerçekleşir. Bunun tersine, yedekleme işlemi sürerken veritabanı dosyası oluşturmayı veya silmeyi denerseniz işlem başarısız olur. Daha fazla bilgi için bkz . Yedeklemeye Genel Bakış.
HADR
Yüksek kullanılabilirlik ve iş sürekliliği elde etmek için kullanılan en yaygın iki teknik yansıtma ve kümelemedir. SQL Server yansıtma ve kümeleme teknolojisini "Her Zaman Açık Yük Devretme Kümesi Örnekleri" ve "Her Zaman Açık Kullanılabilirlik Grupları" ile tümleştirir.
Yansıtma, etkin veritabanının tam kopyası veya yansıtması olan yedek bir veritabanını ayrı bir donanımda tutarak neredeyse anında yük devretmeyi destekleyen, veritabanı düzeyinde bir süreklilik çözümüdür. Gelen işlemin tüm sunuculara aynı zamanda işlendiği zaman uyumlu (yüksek güvenlikli) bir modda veya gelen işlemin etkin veritabanına işlendiği ve ardından önceden belirlenmiş bir noktada yansıtmaya kopyalandığı zaman uyumsuz (yüksek performanslı) bir modda çalışabilir. Yansıtma veritabanı düzeyinde bir çözümdür ve yalnızca tam kurtarma modelinin kullanıldığı veritabanlarında çalışır.
Kümeleme, sunucuları kullanıcıya tek bir örnek gibi görünen tek veri depolamasında bir araya getiren sunucu düzeyinde bir çözümdür. Kullanıcılar örneğe bağlanır ve o anda örnekteki hangi sunucunun etkin olduğunu hiçbir zaman bilmeleri gerekmez. Bir sunucu başarısız olursa veya bakım için çevrimdışına alınması gerekiyorsa, kullanıcı deneyimi değişmez. Kümedeki her sunucu küme yöneticisi tarafından bir sinyal kullanılarak izlenir; dolayısıyla kümedeki etkin sunucunun çevrimdışı olduğunu algılar ve rahatça kümedeki sonraki sunucuya geçmeyi dener. Bununla birlikte geçiş sırasında değişken bir gecikme süresi söz konusudur.
Daha fazla bilgi için bkz . Always On Yük Devretme Kümesi Örnekleri ve Always On kullanılabilirlik grupları: yüksek kullanılabilirlik ve olağanüstü durum kurtarma çözümü.
SQL Server Güvenliği
Güven Merkezi'ni kullanarak ve veritabanını şifreleyerek Access veritabanınızı koruyabilseniz de, SQL Server'da daha gelişmiş güvenlik özellikleri vardır. Access kullanıcısı için öne çıkan üç özelliğe göz atalım. Daha fazla bilgi için bkz. SQL Server güvenliğini sağlama.
Veritabanı kimlik doğrulaması
SQL Server'da dört veritabanı kimlik doğrulama yöntemi vardır ve bunların her birini ODBC bağlantı dizesinde belirtebilirsiniz. Daha fazla bilgi için bkz. Azure SQL Server Veritabanından verilere bağlanma veya verileri içeri aktarma. Her yöntemin kendi özel avantajları vardır.
Tümleşik Windows kimlik doğrulaması Kullanıcı doğrulaması, güvenlik rolleri ve kullanıcıları özellikler ve verilerle sınırlamak için Windows kimlik bilgilerini kullanın. Uygulamanızda etki alanı kimlik bilgilerinden yararlanabilir ve kullanıcı haklarını kolayca yönetebilirsiniz. İsteğe bağlı olarak, bir Hizmet Asıl Adları (SPN) girin. Daha fazla bilgi için bkz. Kimlik Doğrulama Modu Seçme.
SQL Server Kimlik Doğrulaması Kullanıcıların bir oturumda veritabanına ilk kez erişecekleri oturum açma kimliğini ve parolayı girerek veritabanında ayarlanmış kimlik bilgileriyle bağlanması gerekir. Daha fazla bilgi için bkz. Kimlik Doğrulama Modu Seçme.
Azure Active Directory Tümleşik kimlik doğrulaması Azure Active Directory kullanarak Azure SQL Sunucu Veritabanına bağlanın. Azure Active Directory kimlik doğrulamasını bir kez yapılandırdıktan sonra ek oturum açma bilgileri ve parola gerekmez. Daha fazla bilgi için bkz. Azure Active Directory Kimlik Doğrulamasını Kullanarak SQL Veritabanı Bağlanma.
Active Directory Parola kimlik doğrulaması Oturum açma adını ve parolayı girerek Azure Active Directory'de ayarlanmış kimlik bilgileriyle bağlanın. Daha fazla bilgi için bkz. Azure Active Directory Kimlik Doğrulamasını Kullanarak SQL Veritabanı Bağlanma.
Ipucu Azure SQL Server veritabanı için olası güvenlik tehditlerini gösteren anormal veritabanı etkinliğiyle ilgili uyarılar almak için Tehdit Algılama özelliğini kullanın. Daha fazla bilgi için bkz. tehdit algılama SQL Veritabanı.
Uygulama güvenliği
SQL Server'da Access'le yararlanabileceğiniz iki uygulama düzeyi güvenlik özelliği vardır.
Dinamik Veri Maskeleme Ayrıcalıklı olmayan kullanıcılardan gizleyerek hassas bilgileri gizleyebilirsiniz. Örneğin Sosyal Güvenlik numaralarını kısmen veya tamamen maskeleyebilirsiniz.
veri maskesi |
Tam veri maskesi |
|---|
Veri maskesini çeşitli yollarla tanımlayabilir ve bunları farklı veri türlerine uygulayabilirsiniz. Veri maskeleme, tanımlı bir kullanıcı kümesi için tablo ve sütun düzeyinde ilke tabanlı olarak yapılır ve sorguya gerçek zamanlı olarak uygulanır. Daha fazla bilgi için bkz. Dinamik Veri Maskeleme.
Satır Düzeyi Güvenlik Row-Level Güvenliği'ni kullanarak kullanıcı özelliklerine göre hassas bilgiler içeren belirli veritabanı satırlarına erişimi denetleyebilirsiniz. Veritabanı sistemi bu erişim kısıtlamalarını uygular ve bu sayede güvenlik sistemi daha güvenilir ve güçlü olur.
İki tür güvenlik koşulu vardır:
- Filtre koşulu, bir sorgudan satırları filtreler. Filtre saydamdır ve son kullanıcı filtrelemeyi fark etmez.
- Engelleme koşulu, yetkisiz eylemi engeller ve eylem gerçekleştirilemiyorsa bir özel durum oluşturur.
Daha fazla bilgi için bkz. Satır düzeyi güvenlik.
Şifrelemeyle Verileri Koruma
Veritabanı performansını etkilemeden bekleyen, aktarımdaki ve kullanımdaki verileri koruyun. Daha fazla bilgi için bkz. şifreleme SQL Server.
Bekleyen şifreleme Fiziksel depolama katmanındaki çevrimdışı medya saldırılarına karşı kişisel verilerin güvenliğini sağlamak için Saydam Veri Şifrelemesi (TDE) olarak da adlandırılan bekleyen şifrelemeyi kullanın. Bu, fiziksel medya çalındığında veya hatalı bir şekilde atıldığında bile verilerinizin korunacağı anlamına gelir. TDE, uygulamalarınızda herhangi bir değişikliğe gerek kalmadan veritabanlarını, yedekleri ve işlem günlüklerini gerçek zamanlı olarak şifreler ve şifrelerini çözer.
Aktarım sırasında şifreleme Gözetlemeye ve "ortadaki adam saldırılarına" karşı koruma sağlamak için ağ üzerinden iletilen verileri şifreleyebilirsiniz. SQL Server son derece güvenli bir iletişim için Aktarım Katmanı Güvenliği (TLS) 1.2'yi destekler. Güvenli olmayan ağlar üzerindeki iletişimi korumak için Tablo Verisi Akışı (TDS) protokolü de kullanılır.
İstemcide şifreleme kullanılıyor Kullanımdayken kişisel verileri korumak için , "Always Encrypted" istediğiniz özelliktir. Kişisel veriler istemci bilgisayarda bir sürücü tarafından şifrelenir ve şifreleri çözülür; şifreleme anahtarları veritabanı altyapısına gösterilmez. Sonuç olarak, şifrelenmiş veriler yalnızca söz konusu verileri yönetmekle sorumlu kişiler tarafından görülebilir ve erişimi olmaması gereken diğer yüksek ayrıcalıklı kullanıcılar tarafından görülemez. Seçilen şifreleme türüne bağlı olarak, Always Encrypted özelliği şifrelenmiş sütunların aranması, gruplandırılması ve dizine alınması gibi bazı veritabanı özelliklerini sınırlar.
Gizlilikle ilgili kaygıları ele alma
Gizlilik kaygıları artık çok yaygın hale geldiğinden Avrupa Birliği Genel Veri Koruma Yönetmeliği (GDPR) aracılığıyla yasal gereksinimleri tanımlamıştır. Neyse ki SQL Server arka ucu bu gereksinimleri karşılamaya çok uygundur. GDPR'nin uygulanmasını üç adımlık bir çerçeve olarak düşünün.
1. Adım: Uyumluluk riskini değerlendirme ve yönetme
GDPR tablolar ve dosyalardaki kişisel bilgilerinizin tanımlanmasını ve envanterinin çıkarılmasını gerektirir. Bu bilgiler ad, fotoğraf, e-posta adresi, banka ayrıntıları, sosyal ağ web sitelerindeki gönderiler, tıbbi bilgiler, hatta IP adresi bile olabilir.
SQL Server Management Studio'de yerleşik olarak bulunan yeni bir SQL Veri Bulma ve Sınıflandırma aracı, sütunlara iki meta veri özniteliği uygulayarak hassas veri'da keşfetmenize, sınıflandırmanıza, etiketlemenize ve rapor oluşturmanıza yardımcı olur:
- Etiket Verilerin duyarlılığını tanımlamak için.
- Bilgi türleri Bir sütunda depolanan veri türleri hakkında ek ayrıntı düzeyi sağlamak için.
Kullanabileceğiniz bir diğer keşif mekanizması, CONTAINS ve FREETEXT koşullarının ve SELECT deyimiyle birlikte CONTAINSTABLE ve FREETEXTTABLE gibi satır kümesi değeri olan işlevlerin kullanımını içeren tam metin aramasıdır. Tam metin aramasını kullanarak sözcükleri, sözcük bileşimlerini ya da eş anlamlılar veya çekim eki alanlar gibi sözcük çeşitlemelerini bulmak için tablolarda arama yapabilirsiniz. Daha fazla bilgi için bkz. Tam Metin Arama.
2. Adım: Kişisel bilgileri koruma
GDPR, kişisel bilgilerin güvenliğini sağlamanızı ve bu bilgilere erişimi sınırlamanızı gerektirir. Ağınıza ve kaynaklarınıza erişimi yönetmek için izlediğiniz standart adımlara (örneğin güvenlik duvarı ayarları) ek olarak, veri erişimini denetlemenize yardımcı olması için SQL Server güvenlik özelliklerini kullanabilirsiniz:
- Kullanıcı kimliğini yönetmek ve yetkisiz erişimi engellemek için SQL Server kimlik doğrulaması.
- Kullanıcıyla bu veriler arasındaki ilişki temelinde tablodaki satırlara erişimi sınırlamak için Satır Düzeyi Güvenlik.
- Ayrıcalığı olmayan kullanıcılara karşı maskeleyerek kişisel verilerin açıklanmasını sınırlamak için Dinamik Veri Maskeleme.
- Kişisel verilerin iletim ve depolama sırasında koruma altına alınmasını, ayrıca sunucu tarafı da dahil olmak üzere bu verilerin gizliliğin bozulmasına karşı korunmasını sağlamak için şifreleme.
Daha fazla bilgi için bkz. SQL Server Güvenliği.
3. Adım: İsteklere verimli bir şekilde yanıt verme
GDPR, kişisel veri işleme işlemlerinin kaydının tutulmasını ve bu kayıtların istendiğinde denetim makamına sağlanmasını gerektirir. Yanlışlıkla verilerin açıklanması gibi sorunlar oluşursa, koruma denetimleri hızla yanıt vermenize olanak tanır. Raporlama gerektiğinde veriler hızla kullanılabilir olmalıdır. Örneğin GDPR, kişisel veri ihlalinin "farkında olduktan sonra en fazla 72 saat sonra" denetim yetkilisine bildirilmesi gerektiğini gerektirir.
SQL Server 2017 raporlama görevlerinde çeşitli yollardan size yardımcı olur:
- SQL Server Denetimi, veritabanı erişim ve işleme etkinliklerinin kalıcı kayıtlarının mevcut olduğundan emin olmanıza yardımcı olur. Olası tehditleri, uygunsuz kullanım şüphelerini veya güvenlik ihlallerini anlamanıza ve belirlemenize yardımcı olmak için veritabanı etkinliklerini izleyen ayrıntılı bir denetim gerçekleştirir. Hemen verilerde adli araştırma yapabilirsiniz.
- SQL Server zamana bağlı tabloları, veri değişikliklerinin tam geçmişini tutmak için tasarlanmış sistem sürümü tutulan kullanıcı tablolarıdır. Kolay raporlama veya zamanın belirli bir noktasında analiz için bu tabloları kullanabilirsiniz.
- SQL Güvenlik Açığı Değerlendirmesi , güvenlik ve izin sorunlarını algılamanıza yardımcı olur. Sorun algılandığında, çözüme yönelik eylemleri bulmak için veritabanı tarama raporlarında detaya gidebilirsiniz.
Daha fazla bilgi için bkz. Güven platformu oluşturma (e-kitap) ve GDPR Uyumluluğu yolculuğu.
Veritabanı anlık görüntüleri oluşturma
Veritabanı anlık görüntüsü, SQL Server veritabanının belirli bir noktadaki salt okunur, statik görünümüdür. Access veritabanını kopyalayarak etkili bir şekilde veritabanı anlık görüntüsü oluşturabilseniz de, Access'te SQL Server'daki gibi yerleşik bir yöntem yoktur. Veritabanı anlık görüntüsünü kullanarak, bu anlık görüntünün oluşturulduğu zamana ait verileri temel alan raporlar yazabilirsiniz. Ayrıca, dönem sonu raporlarını dağıtırken kullandığınız her üç aylık finansal döneme ilişkin geçmiş verileri gibi geçmiş verilerini tutmak için de veritabanı anlık görüntüsünü kullanabilirsiniz. Aşağıdaki en iyi yöntemleri kullanmanızı öneririz:
- Anlık görüntüyü adlandırma Her veritabanı anlık görüntüsü benzersiz bir veritabanı adı gerektirir. Kolayca belirlemek için bu ada amacı ve zaman çerçevesini ekleyin. Örneğin, AdventureWorks veritabanının 06:00 ile 18:00 arasında 6 saatlik aralıklarla üç kez anlık görüntüsünü almak için, bunları AdventureWorks_AnlıkGörüntü_0600, AdventureWorks_AnlıkGörüntü_1200 ve AdventureWorks_AnlıkGörüntü_1800 olarak adlandırın.
- Anlık görüntü sayısını sınırlama Her veritabanı anlık görüntüsü açıkça bırakılana kadar kalır. Anlık görüntüler giderek büyüyeceği için, yeni anlık görüntüyü oluşturduktan sonra eski anlık görüntüyü silerek disk alanından tasarruf etmek isteyebilirsiniz. Örneğin günlük raporlar hazırlıyorsanız, veritabanı anlık görüntüsünü 24 saat tutun ve ardından bunu atıp yerine yeni bir anlık görüntü alın.
- Doğru anlık görüntüye bağlanma Veritabanı anlık görüntüsünü kullanmak için Access ön ucunun doğru konumu bilmesi gerekir. Mevcut anlık görüntünün yerine yenisini koyduğunuzda, Access'i yeni anlık görüntüye yönlendirmelisiniz. Doğru veritabanı anlık görüntüsüne bağlandığınızdan emin olmak için Access ön ucuna mantık ekleyin.
Veritabanı anlık görüntüsünü şu şekilde oluşturabilirsiniz:
CREATE DATABASE AdventureWorks_dbss1800 ON
( NAME = AdventureWorks_Data, FILENAME =
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks_snapshot_0600' )
AS SNAPSHOT OF AdventureWorks;
Daha fazla bilgi için bkz. Veritabanı Anlık Görüntüleri (SQL Server).
Eşzamanlılık denetimi
Birçok kişi aynı anda veritabanındaki verileri değiştirmeye çalıştığında, bir kişinin yaptığı değişikliklerin başka birinin değişikliklerini olumsuz etkilememesi için bir denetim sistemi gerekir. Bu sistem eşzamanlılık denetimi olarak adlandırılır ve iki temel kilitleme stratejisi vardır: kötümser ve iyimser. Kilitleme, kullanıcıların verilerde diğer kullanıcıları etkileyecek değişiklikler yapmasını önler. Ayrıca kilitleme, özellikle de beklenmedik sonuçlar doğurabilecek sorgularda veritabanı bütünlüğünü sağlamaya yardımcı olur. Access'in ve SQL Server'ın bu eşzamanlılık denetimi stratejilerini uygulama yönteminde iki önemli fark vardır.
Access'te varsayılan kilitleme stratejisi iyimserdir ve kilidin sahipliğini bir kayda yazmayı deneyen ilk kişiye verir. Access, aynı anda aynı kayda yazmaya çalışan diğer kişiye Yazma Çakışması iletişim kutusunu görüntüler. Çakışmayı çözmek için diğer kişi kaydı kaydedebilir, panoya kopyalayabilir veya değişiklikleri atabilir.
Eşzamanlılık denetim stratejisini değiştirmek için RecordLocks özelliğini de kullanabilirsiniz. Formları, raporları ve sorguları etkileyen bu özelliğin üç ayarı vardır:
- Kilit Yok Formda, kullanıcılar aynı kaydı aynı anda düzenlemeye çalışabilir, ancak Yazma Çakışması iletişim kutusu görüntülenebilir. Raporda, rapor önizlenirken veya yazdırılırken kayıtlar kilitlenmez. Sorguda, sorgu çalıştırılırken kayıtlar kilitlenmez. Access iyimser kilitlemeyi bu şekilde uygular.
- Tüm Kayıtlar Temel alınan tablo veya sorgudaki tüm kayıtlar, form Form görünümünde veya Veri Sayfası görünümünde açıkken, raporun önizlemesi veya yazdırıldığı sırada ya da sorgu çalıştırılırken kilitlenir. Kilitli olduğu sırada kullanıcılar kayıtları okuyabilir.
- Düzenlenen Kayıt Formlar ve sorgular için, herhangi bir kullanıcı kayıttaki herhangi bir alanı düzenlemeye başladığı anda bir kayıt sayfası kilitlenir ve kullanıcı başka bir kayda taşınana kadar kilitli kalır. Sonuç olarak, bir kayıt aynı anda birden çok kullanıcı tarafından düzenlenemez. Access kötümser kilitlemeyi bu şekilde uygular.
Daha fazla bilgi için bkz . Yazma Çakışması iletişim kutusu ve RecordLocks Özelliği.
SQL Server'da eşzamanlılık denetimi şöyle çalışır:
- Kötümser Kullanıcı bir kilidin uygulanmasına neden olan bir eylem gerçekleştirdikten sonra, diğer kullanıcılar kilit sahibi onu serbest bırakana kadar kilitle çakışacak eylemleri gerçekleştiremez. Bu eşzamanlılık denetimi, asıl olarak yüksek veri çekişmesi olan ortamlarda kullanılır.
- Iyimser İyimser eşzamanlılık denetiminde kullanıcılar verileri okurken kilitlemez. Bir kullanıcı verileri güncelleştirdiğinde, sistem başka bir kullanıcının verileri okunduktan sonra değiştirip değiştirmediğini denetler. Başka bir kullanıcı verileri güncelleştirdiyse hata oluşur. Normalde, hatayı alan kullanıcı işlemi geri alır ve baştan başlar. Bu eşzamanlılık denetimi, asıl olarak düşük veri çekişmesi olan ortamlarda kullanılır.
SET TRANSACTION deyimini kullanıp işlemin diğer işlemler tarafından yapılan değişikliklerden korunma düzeyini tanımlayan çeşitli işlem yalıtım düzeylerini seçerek eşzamanlılık denetimi türünü belirtebilirsiniz:
SET TRANSACTION ISOLATION LEVEL
{ READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SNAPSHOT
| SERIALIZABLE
}
| Yalıtım düzeyi | Açıklama |
|---|---|
| Kaydedilmeyen okuma | İşlemler yalnızca fiziksel olarak bozuk verilerin okunmamasını sağlayacak kadar yalıtılır. |
| Kaydedilen okuma | İşlemler, daha önce başka bir işlem tarafından okunan verileri ilk işlemin tamamlanmasını beklemeden okuyabilir. |
| Yinelenebilir okuma | Seçilen veriler üzerinde işlemin sonuna kadar okuma ve yazma kilitleri uygulanır ama hayalet okumalar oluşabilir. |
| Anlık görüntü | İşlem düzeyi okuma tutarlılığı sağlamak için satır sürümünü kullanır. |
| Serileştirilebilir | İşlemler birbirinden tamamen yalıtılır. |
Daha fazla bilgi için bkz. İşlem Kilitleme ve Satır Sürüm Oluşturma Kılavuzu.
Sorgu performansını geliştirme
Access doğrudan sorgusu çalıştırdıktan sonra, SQL Server'ın bu sorgunun daha verimli çalıştırılmasını sağlayan gelişmiş yöntemlerinden yararlanın.
Access veritabanından farklı olarak, SQL Server birden çok mikroişlemcisi (CPU) olan bilgisayarlarda sorgu yürütmesini ve dizin işlemlerini iyileştirmek için paralel sorgular sağlar. SQL Server sistemin çeşitli çalışan iş parçacıklarını kullanarak paralel sorgu veya dizin işlemleri gerçekleştirebildiğinden, işlemler hızla ve verimli bir şekilde tamamlanabilir.
Sorgular, veritabanı çözümünüzün genel olarak performansını geliştirme açısından kritik bir bileşendir. Bozuk sorgular süresiz olarak çalışır, zaman aşımına uğrar ve CPU, bellek ve ağ bant genişliği gibi kaynakları tüketir. Bu durum kritik iş bilgilerinin kullanılabilirliğini engeller. Tek bir bozuk sorgu bile veritabanınızda ciddi performans sorunlarına yol açabilir.
Daha fazla bilgi için bkz. SQL Server ile daha hızlı sorgulama (e-kitap).
Sorgu iyileştirme
Sorgu performansını analiz edip geliştirmenize yardımcı olmak için çeşitli araçlar birlikte çalışır: Sorgu İyileştiricisi, yürütme planları ve Sorgu Deposu.
? Sorgu iyileştiricisi
Sorgu İyileştiricisi SQL Server'ın en önemli bileşenlerinden biridir. Sorgu İyileştiricisini kullanarak sorguyu analiz edebilir ve gerekli verilere erişmenin en verimli yolunu saptayabilirsiniz. Sorgu İyileştiricisinin girişi sorgudan, veritabanı şemasından (tablo ve dizin tanımları) ve veritabanı istatistiklerinden oluşur. Sorgu İyileştiricisinin çıkışı bir yürütme planıdır.
Daha fazla bilgi için bkz. SQL Server Sorgu İyileştiricisi.
Yürütme planı
Yürütme planı, erişilecek kaynak tabloları ve her tablodan veri ayıklamak için kullanılan yöntemleri sıraya koyan bir tanımdır. İyileştirme, olası birçok yürütme planı arasından bir plan seçme işlemidir. Olası yürütme planlarının her biriyle ilişkilendirilmiş, işlem kaynakları miktarı cinsinden bir maliyet vardır ve Sorgu İyileştiricisi tahmini maliyeti en düşük olan planı seçer.
SQL Server'ın veritabanında değişen koşullara da dinamik olarak uyarlanması gerekir. Sorgu yürütme planlarındaki regresyonlar performansı önemli ölçüde etkileyebilir. Veritabanındaki bazı değişiklikler, veritabanının yeni durumuna bağlı olarak bir yürütme planının verimsiz veya geçersiz duruma gelmesine neden olabilir. SQL Server yürütme planını geçersiz kılan değişiklikleri algılar ve planı geçersiz olarak işaretler.
Bundan sonra, sorguyu yürüten bir sonraki bağlantı için yeni bir planın yeniden derlenmesi gerekir. Planı geçersiz kılan koşullar şunlardır:
- Sorgunun (ALTER TABLE veya ALTER VIEW) başvurduğu bir tablo veya görünümde yapılan değişiklikler.
- Yürütme planı tarafından kullanılan dizinlerde yapılan değişiklikler.
- UPDATE STATISTICS gibi bir deyimden açıkça veya otomatik olarak oluşturulan ve yürütme planı tarafından kullanılan istatistiklerde yapılan değişiklikler.
Daha fazla bilgi için bkz . Yürütme planları.
Query Store
Query Store yürütme planı seçimi ve performansıyla ilgili içgörü sağlar. Yürütme planı değişikliklerinin neden olduğu performans farklılıklarını hızla bulmanıza yardımcı olarak, performans sorunlarını gidermeyi basitleştirir. Query Store sorguların, planların, çalışma zamanı istatistiklerinin ve bekleme istatistiklerinin geçmişi gibi telemetri verilerini toplar. Query Store'u uygulamak için ALTER DATABASE deyimini kullanın:
ALTER DATABASE AdventureWorks2012 SET QUERY_STORE = ON;
Daha fazla bilgi için bkz. Sorgu Deposu'nı kullanarak performansı izleme.
Otomatik Plan Düzeltmesi
Sorgu performansını geliştirmenin belki de en kolay yolu, Azure SQL Veritabanı ile sağlanan Otomatik Plan Düzeltmesi özelliğini kullanmaktır. Bu özelliği açmanız ve çalışmasına izin vermeniz yeterlidir. Yürütme planını sürekli izleyip analiz eder, sorunlu yürütme planlarını algılar ve performans sorunlarını otomatik olarak düzeltir. Otomatik Plan Düzeltmesi arka planda öğrenme, uyarlama, doğrulama ve tekrarlamadan oluşan dört adımlık bir strateji kullanır.
Daha fazla bilgi için bkz. Otomatik ayarlama.
Uyarlanabilir Sorgu İşleme
Ayrıca, yalnızca uyarlanabilir sorgu işleme adlı yeni bir özelliği olan SQL Server 2017'ye yükselterek de daha hızlı sorgular elde edebilirsiniz. SQL Server çalışma zamanı özellikleri temelinde sorgu planı seçimlerini ayarlar.
Kardinalite tahmini, bir yürütme planındaki her adımda işlenen yaklaşık satır sayısını belirler. Yanlış tahminler sorgu yanıt süresinin yavaş olmasına, gereksiz kaynak kullanımına (bellek, CPU ve GÇ) ve işleme hızı ile eşzamanlılığın azalmasına yol açabilir. Uygulama iş yükü özelliklerini uyarlamak için üç teknik kullanılır:
- Toplu iş modu bellek verme geri bildirimi Düşük kardinalite tahminleri sorguların "diske taşmasına" veya çok fazla bellek almasına neden olabilir. SQL Server 2017 yürütme geri bildirimi temelinde bellek atamalarını ayarlar, diske taşmaları kaldırır ve tekrarlanan sorgularda eşzamanlılığı geliştirir.
- Toplu iş modu uyarlamalı birleşimleri Uyarlamalı birleşimler, çalışma zamanı sırasında gerçek giriş satırlarına göre dinamik olarak daha iyi bir iç birleştirme türü (iç içe döngü birleştirmeleri, birleştirme birleştirmeleri veya karma birleştirmeleri) seçer. Bunun sonucunda, yürütme sırasında bir plan dinamik olarak daha iyi bir birleştirme stratejisine geçebilir.
- Araya kaydedilen yürütme Çok deyimli tablo değerli işlevler, sorgu işleme tarafından geleneksel olarak kara kutu olarak kabul edilmiştir. SQL Server 2017 aşağı akış işlemlerini geliştirmek için satır sayılarını daha iyi tahmin edebilir.
Veritabanı için 140 uyumluluk düzeyini etkinleştirerek iş yüklerinin otomatik olarak uyarlanabilir sorgu işlemesine uygun olmasını sağlayabilirsiniz:
ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 140;
Daha fazla bilgi için bkz. SQL veritabanlarında akıllı sorgu işleme.
Sorgulamanın yolları
SQL Server'da sorgulamanın çeşitli yolları ve her yolun kendi avantajları vardır. Access çözümünüzde doğru seçimi yapmak için bunları neler olduğunu bilmek istersiniz. TSQL sorgularınızı oluşturmanın en iyi yolu, doğru anahtar sözcükleri seçmenize ve söz dizimi hatalarını denetlemenize yardımcı olacak intellisense içeren SQL Server Management Studio (SSMS) Transact-SQL düzenleyicisini kullanarak bunları etkileşimli olarak düzenlemek ve test etmektir.
Görünümler
SQL Server'da görünüm sanal bir tablo gibidir; görünüm verileri bir veya birden çok tablodan veya diğer görünümlerden gelir. Öte yandan sorgularda görünümlere aynı tablolar gibi başvurulur. Görünümler sorguların karmaşıklığını gizleyebilir, satır ve sütun kümesini sınırlayarak verilerin korunmasına yardımcı olabilir. Aşağıda basit bir görünüm örneği verilmiştir:
CREATE VIEW HumanResources.EmployeeHireDate AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID;
En uygun performansı elde etmek ve görünüm sonuçlarını düzenlemek için veritabanında bir tablo gibi kalıcı olan, kendisine ayrılmış depolaması bulunan ve herhangi bir tablo gibi sorgulanabilen dizinli bir görünüm oluşturun. Bunu Access'te kullanmak için, aynı tabloya bağlandığınız gibi görünüme bağlanın. Aşağıda bir dizinli görünüm örneği verilmiştir:
CREATE VIEW Sales.vOrders
WITH SCHEMABINDING
AS
SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Revenue,
OrderDate, ProductID, COUNT_BIG(*) AS COUNT
FROM Sales.SalesOrderDetail AS od, Sales.SalesOrderHeader AS o
WHERE od.SalesOrderID = o.SalesOrderID
GROUP BY OrderDate, ProductID;
CREATE UNIQUE CLUSTERED INDEX IDX_V1
ON Sales.vOrders (OrderDate, ProductID);
Öte yandan bazı sınırlamaları vardır. Birden fazla temel tablo etkileniyorsa veya görünüm toplama işlevleri veya DISTINCT yan tümcesi içeriyorsa verileri güncelleştiremezsiniz. SQL Server hangi kaydın silineceğini bilmediğine ilişkin bir hata iletisi döndürürse, görünümde bir silme tetikleyicisi eklemeniz gerekebilir. Son olarak, Access sorgularında yaptığınız gibi ORDER BY yan tümcesini kullanamazsınız.
Daha fazla bilgi için bkz. Görünümler ve Dizinli Görünümler Oluşturma.
Saklı yordamlar
Saklı yordam giriş parametreleri alan, çıkış parametreleri döndüren ve bir durum değeriyle başarıyı veya başarısızlığı gösteren bir veya birden çok TSQL deyiminden oluşturulmuş bir gruptur. Access ön ucu ile SQL Server arka ucu arasında ara katman işlevi görür. Saklı yordamlar bir SELECT deyimi kadar basit veya herhangi bir program kadar karmaşık olabilir. İşte size bir örnek:
CREATE PROCEDURE HumanResources.uspGetEmployees
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
SET NOCOUNT ON;
SELECT FirstName, LastName, Department
FROM HumanResources.vEmployeeDepartmentHistory
WHERE FirstName = @FirstName AND LastName = @LastName
AND EndDate IS NULL;
Access'te saklı yordam kullandığınızda, genellikle forma veya rapora bir sonuç kümesi döndürür. Ancak, DDL veya DML deyimleri gibi sonuçları döndürmeyen başka eylemler gerçekleştirebilir. Doğrudan sorgu kullanırken Kayıt Döndür özelliğini gerektiği gibi ayarladığınızdan emin olun.
Daha fazla bilgi için bkz . Saklı yordamlar.
Ortak Tablo İfadeleri
Ortak Tablo İfadeleri (CTE), adlandırılmış bir sonuç kümesi döndüren geçici bir tabloya benzer. Tek bir sorgunun veya DML deyiminin yürütülmesi sırasında var olur. CTE, bunu kullanan SELECT deyimiyle veya DML deyimiyle aynı kod satırında oluşturulur; öte yandan geçici tablo veya görünüm oluşturmak ve kullanmak genellikle iki adımlı bir işlemdir. İşte size bir örnek:
-- Define the CTE expression name and column list.
WITH Sales_CTE (SalesPersonID, SalesOrderID, SalesYear)
AS
-- Define the CTE query.
(
SELECT SalesPersonID, SalesOrderID, YEAR(OrderDate) AS SalesYear
FROM Sales.SalesOrderHeader
WHERE SalesPersonID IS NOT NULL
)
-- Define the outer query referencing the CTE name.
SELECT SalesPersonID, COUNT(SalesOrderID) AS TotalSales, SalesYear
FROM Sales_CTE
GROUP BY SalesYear, SalesPersonID
ORDER BY SalesPersonID, SalesYear;
CTE'nin aşağıdakiler gibi çeşitli avantajları vardır:
- CTE'ler geçici olduğundan, bunları görünümler gibi kalıcı veritabanı nesneleri olarak oluşturmanız gerekmez.
- Sorguda veya DML deyiminde aynı CTE'ye birden çok kez başvurabilmeniz, kodunuzun daha kolay yönetilebilir olmasını sağlar.
- İmleç tanımlamak için CTE'ye başvuran sorgular kullanabilirsiniz.
Daha fazla bilgi için bkz . WITH common_table_expression.
Kullanıcı Tanımlı İşlevler
Kullanıcı tanımlı işlevler (UDF) sorgu ve hesaplamalar gerçekleştirebilir ve skaler değerler veya veri sonuç kümeleri döndürür. Bunlar programlama dillerindeki parametre kabul eden, karmaşık hesaplama gibi bir eylem gerçekleştiren ve bu eylemin sonucunu değer olarak döndüren işlevlere benzer. İşte size bir örnek:
CREATE FUNCTION dbo.ISOweek (@DATE datetime)
RETURNS int WITH SCHEMABINDING -- Helps improve performance
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @ISOweek int;
SET @ISOweek= DATEPART(wk,@DATE)+1
-DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104');
-- Special cases: Jan 1-3 may belong to the previous year
IF (@ISOweek=0)
SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1
AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1;
-- Special case: Dec 29-31 may belong to the next year
IF ((DATEPART(mm,@DATE)=12) AND
((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
SET @ISOweek=1;
RETURN(@ISOweek);
END;
GO
SET DATEFIRST 1;
SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week';
UDF'nin bazı sınırlamaları vardır. Örneğin, belirli belirsiz sistem işlevlerini kullanamaz, DML veya DDL deyimleri gerçekleştiremez veya dinamik SQL sorguları yapamazlar.
Daha fazla bilgi için bkz. Kullanıcı Tanımlı İşlevler.
Anahtarlar ve dizinler ekleme
Hangi veritabanı sistemini kullanırsanız kullanın, anahtarlar ve dizinler birlikte bulunur.
Tuşlar
SQL Server'da her tablo için birincil anahtarlar ve her ilgili tablo için yabancı anahtarlar oluşturduğunuzdan emin olun. Access Otomatik Sayı veri türüyle eşdeğer olan SQL Server özelliği, anahtar değerlerini oluşturmak için kullanılabilen IDENTITY özelliğidir. Bu özelliği herhangi bir sayısal sütuna uyguladığınızda, sütun salt okunur olur ve veritabanı sistemi tarafından korunur. IDENTITY sütunu içeren bir tabloya kayıt eklediğinizde, sistem IDENTITY sütununun değerini (1'den başlayarak) otomatik olarak 1 artırır ama bu değerleri bağımsız değişkenlerle denetleyebilirsiniz.
Daha fazla bilgi için bkz. CREATE TABLE, IDENTITY (Özellik).
Dizinler
Her zaman olduğu gibi dizinlerin seçimi sorgu hızıyla güncelleştirme maliyeti arasında dengeleyici bir harekettir. Access'te tek bir dizin türünüz varken SQL Server'da on iki tür vardır. Neyse ki güvenilir bir şekilde en etkili dizini seçmenize yardımcı olması için sorgu iyileştiricisini kullanabilirsiniz. Azure SQL'de de bir otomatik ayar özelliği olan ve sizin için dizinleri ekleme veya kaldırma önerileri sağlayan otomatik dizin yönetimini kullanabilirsiniz. Access'ten farklı olarak SQL Server'da yabancı anahtarlar için kendi dizinlerinizi oluşturmanız gerekir. Ayrıca, sorgu performansını geliştirmek için dizinli görünümde de dizinler oluşturabilirsiniz. Görünümün de güncelleştirilmiş olması gerektiğinden, görünümün temel tablolarındaki verileri değiştirdiğinizde dizinlenmiş görünümün dezavantajı artar. Daha fazla bilgi için bkz. dizin mimarisi ve tasarım kılavuzu vedizinler SQL Server.
İşlemler yapma
Çevrimiçi İşlem Gerçekleştirme (OLTP) Access kullanırken zor olsa da, SQL Server'la görece kolaydır. İşlem, başarılı olduğunda tüm veri değişikliklerini işleyen ama başarısız olduğunda değişiklikleri geri alan tek bir çalışma birimidir. Bir işlemin dört özelliği olmalıdır ve buna genellikle ACID denir:
- Kararlı -lık İşlem, atomik bir çalışma birimi olmalıdır; tüm veri değişiklikleri gerçekleştirilir veya hiçbiri gerçekleştirilmez.
- Tutarlı -lık İşlem tamamlandığında tüm verileri tutarlı bir durumda bırakmalıdır. Başka bir deyişle tüm veri bütünlüğü kuralları uygulanır.
- Yalıtım Eşzamanlı işlemler tarafından yapılan değişiklikler geçerli işlemden yalıtılır.
- Dayanıklı -lık İşlem tamamlandıktan sonra, sistem hatası durumunda bile değişiklikler kalıcı olur.
ATM'den para çekme veya maaş çekini hesaba otomatik geçirme gibi garantili veri bütünlüğü sağlamak için işlem kullanırsınız. Açık, örtülü veya toplu kapsamı olan işlemler yapabilirsiniz. Burada iki TSQL örneği verilmiştir:
-- Using an explicit transaction
BEGIN TRANSACTION;
DELETE FROM HumanResources.JobCandidate
WHERE JobCandidateID = 13;
COMMIT;
-- the ROLLBACK statement rolls back the INSERT statement, but the created table still exists.
CREATE TABLE ValueTable (id int);
BEGIN TRANSACTION;
INSERT INTO ValueTable VALUES(1);
INSERT INTO ValueTable VALUES(2);
ROLLBACK;
Daha fazla bilgi için bkz. İşlemler.
Kısıtlamaları ve tetikleyicileri kullanma
Tüm veritabanlarında veri bütünlüğünü korumanın yolları vardır.
Kısıtlamalar
Access'te, tablo ilişkisinde yabancı anahtar-birincil anahtar eşlemelerini, basamaklı güncelleştirmeleri, silmeleri ve doğrulama kurallarını kullanarak bilgi tutarlılığını zorlarsınız. Daha fazla bilgi için bkz. Tablo ilişkileri kılavuzu ve Doğrulama kurallarını kullanarak veri girişini kısıtlama.
SQL Server'da UNIQUE ve CHECK kısıtlamalarını kullanırsınız. Bunlar, SQL Server tablolarında veri bütünlüğünü zorunlu tutan veritabanı nesneleridir. Bir değerin başka bir tabloda geçerli olduğunu doğrulamak için yabancı anahtar kısıtlamasını kullanın. Bir sütundaki değerin belirli bir aralık içinde olduğunu doğrulamak için check kısıtlamasını kullanın. Bu nesneler ilk savunma hattını oluşturur ve verimli çalışacak şekilde tasarlanmıştır. Daha fazla bilgi için bkz. Benzersiz Kısıtlamalar ve Kısıtlamaları Denetleme.
Tetikleyiciler
Access'te veritabanı tetikleyicileri yoktur. SQL Server'da karmaşık veri bütünlüğü kurallarını zorlamak ve sunucuda bu iş mantığını çalıştırmak için tetikleyicileri kullanabilirsiniz. Veritabanı tetikleyicisi, veritabanının içinde belirli eylemler gerçekleştiğinde çalıştırılan bir saklı yordamdır. Tetikleyici bir tabloda kayıt ekleme veya silme gibi saklı yordamı çağıran ve sonra yürüten bir olaydır. Access veritabanı kullanıcı verileri güncelleştirmeyi veya silmeyi denediğinde bilgi tutarlılığını güvence altına alabilse de, SQL Server'ın gelişmiş bir tetikleyici kümesi vardır. Örneğin, kayıtları toplu olarak silmek ve veri bütünlüğünü güvence altına almak için bir tetikleyici programlayabilirsiniz. Tablolara ve görünümlere bile tetikleyici ekleyebilirsiniz.
Daha fazla bilgi için bkz . Tetikleyiciler - DML, Tetikleyiciler - DDL ve T-SQL tetikleyicisi tasarlama.
Hesaplanan sütunları kullanma
Access'te aşağıdaki gibi sütunu sorguya ekleyip bir ifade derleyerek hesaplanan sütun oluşturabilirsiniz:
Extended Price: [Quantity] * [Unit Price]
SQL Server'da buna eşdeğer özelliğin adı da hesaplanan sütundur; bu, PERSISTED olarak işaretlenmediği sürece tabloda fiziksel olarak depolanmayan sanal bir sütundur. Access'in hesaplanan sütunu gibi SQL Server'ın hesaplanan sütunu da ifadedeki diğer sütunların verilerini kullanır. Hesaplanan sütun oluşturmak için bunu bir tabloya ekleyin. Örneğin:
CREATE TABLE dbo.Products
(
ProductID int IDENTITY (1,1) NOT NULL
, QtyAvailable smallint
, UnitPrice money
, InventoryValue AS QtyAvailable * UnitPrice
);
Daha fazla bilgi için bkz. Tabloda Hesaplanan Sütunları Belirtme.
Verilerinize zaman damgası ekleme
Veri girdisini günlüğe alabilmek için bazen kaydın oluşturulduğu zamanın zaman damgasını kaydetmek üzere bir tablo alanı eklersiniz. Access'te, varsayılan değeri =Now()olan bir tarih sütunu oluşturabilirsiniz. SQL Server bir tarih veya saat kaydetmek için, varsayılan değeri SYSDATETIME()olan datetime2 veri türünü kullanın.
Not Verilerinize zaman damgası ekleyerek rowversion'ın kafa karıştırıcı olmasını önle. SQL Server'da timestamp (zaman damgası) anahtar sözcüğü rowversion ile eş anlamlıdır ama rowversion anahtar sözcüğünü kullanmanız gerekir. SQL Server'da rowversion bir veritabanının içindeki otomatik olarak oluşturulmuş, benzersiz ikili sayıları kullanıma sunar ve genel olarak tablo satırlarına sürüm damgası ekleme mekanizması olarak kullanılır. Öte yandan rowversion veri türü yalnızca artımlı bir sayıdır, tarih veya saat tutmaz ve satıra zaman damgası eklemek için tasarlanmamıştır.
Daha fazla bilgi için bkz. rowversion. Kayıt çakışmalarını en aza indirmek amacıyla rowversion kullanma hakkında daha fazla bilgi için bkz. Access veritabanını SQL Server'a geçirme.
Büyük nesneleri yönetme
Access’te dosyalar, fotoğraflar ve resimler gibi yapılandırılmamış verileri yönetmek için Ek veri türünü kullanırsınız. SQL Server terminolojisinde yapılandırılmamış veriler Blob (İkili Büyük Nesne) olarak adlandırılır ve bunlarla çalışmanın çeşitli yolları vardır:
FILESTREAM Yapılandırılmamış verileri veritabanı yerine dosya sisteminde depolamak için varbinary(max) veri türünü kullanır. Daha fazla bilgi için bkz. Transact-SQL ile FILESTREAM Verilerine Erişme.
Filetable Blobları FileTables adlı özel tablolarda depolar ve Windows uygulamalarıyla dosya sisteminde depolanmış gibi ve istemci uygulamalarınızda herhangi bir değişiklik yapmadan uyumluluk sağlar. FileTable için FILESTREAM kullanılması gerekir. Daha fazla bilgi için bkz. FileTable'lar.
Uzak BLOB deposu (RBS) İkili büyük nesneleri (BLOB'lar) doğrudan sunucuda değil ticari depolama çözümlerinde depolar. Bu şekilde alandan tasarruf sağlanır ve donanım kaynakları azalır. Daha fazla bilgi için bkz . İkili Büyük Nesne (Blob) Verileri.
Hiyerarşik verilerle çalışma
Access gibi ilişkisel veritabanları çok esnek olsa da, hiyerarşik ilişkilerle çalışmak özel bir durumdur ve çoğunlukla karmaşık SQL deyimleri veya kod gerektirir. Hiyerarşik veri örnekleri: kurumsal yapı, dosya sistemi, dil terimleri sınıflandırması ve Web sayfaları arasındaki bağlantıların grafiği. SQL Server'da hiyerarşik verileri kolayca depolamak, sorgulamak ve yönetmek için yerleşik hierarchyid veri türü ve bir dizi hiyerarşik işlev vardır.
Daha fazla bilgi için bkz . Hiyerarşik veriler ve Öğretici: Hierarchyid veri türünü kullanma.
JSON metnini işleme
JavaScript Nesne Gösterimi (JSON), zaman uyumsuz tarayıcı–sunucu iletişiminde verileri öznitelik–değer çiftleri olarak iletmek için insan tarafından okunabilir metinler kullanan bir web hizmetidir. Örneğin:
{
"firstName": "Mary",
"lastName": "Contrary",
"spouse": null,
"age": 27
}
Access'te JSON verilerini yönetmek için yerleşik yöntemler yoktur ama SQL Server'da JSON verilerini rahatça depolayabilir, dizine alabilir, sorgulayabilir ve ayıklayabilirsiniz. JSON metnini dönüştürüp bir tabloda depolayabilir veya verileri JSON metni olarak biçimlendirebilirsiniz. Örneğin, bir Web uygulaması için sorgu sonuçlarını JSON olarak biçimlendirmek veya satırlar ve sütunlara JSON veri yapıları eklemek isteyebilirsiniz.
Not JSON VBA'da desteklenmez. Alternatif olarak, VBA'da MSXML kitaplığı aracılığıyla XML kullanabilirsiniz.
Daha fazla bilgi için bkz. SQL Server'de JSON verileri.
Kaynaklar
Şu an SQL Server ve Transact SQL (TSQL) hakkında daha fazla bilgi edinmek için çok uygun bir zamandır. Gördüğünüz gibi, Access gibi birçok özellik vardır, ancak Access'in sahip olmadığı özellikler de vardır. Gezintinizi bir sonraki düzeye çıkarmak için burada bazı eğitim kaynakları sağlanmıştır:
| Kaynak | Açıklama |
|---|---|
| Transact-SQL ile sorgulama | Video kursu |
| Veritabanı Altyapısı Öğreticileri | SQL Server 2017 ile ilgili öğreticiler |
| Microsoft Learn | Azure için pratik öğrenme |
| eğitim ve sertifikasyon SQL Server | Uzman olma |
| SQL Server 2017 | Ana giriş sayfası |
| SQL Server Belgeleri | Yardım bilgileri |
| Azure SQL Veritabanı Belgeleri | Yardım bilgileri |
| Buluttaki verilerin temel kılavuzu (e-kitap) | Buluta genel bakış |
| SQL Server 2017 Veri Sayfası | Yeni özelliklerin görsel bir özeti |
| Microsoft SQL Server sürümünü karşılaştırma | Sürümlere göre özelliklerin özeti |
| Microsoft SQL Server Express Sürümleri | SQL Server Express 2017'yi indirme |
| SQL örnek veritabanları | Örnek veritabanlarını indirme |