Hepimiz sınırlıyoruz ve bir Access veritabanı özel durum içermiyor. Örneğin, bir Access veritabanının boyut sınırı 2 GB 'tır ve 255 'tan fazla eşzamanlı kullanıcıyı destekleyemez. Böylece Access veritabanınızın bir sonraki düzeye gitmesi gerektiğinde, SQL Server 'a geçebilirsiniz. SQL Server (Şirket içinde veya Azure bulutta şirket içinde) büyük miktarlarda veriyi ve daha fazla eşzamanlı kullanıcıyı destekler ve JET/ACE veritabanı altyapısından daha fazla kapasiteye sahiptir. Bu kılavuz, SQL Server 'ın ev yolculuğuna sorunsuz bir başlangıç sağlar, oluşturduğunuz ön uç çözümlerin korunmasına yardımcı olur ve gelecekteki veritabanı çözümlerine erişimi kullanmanızı umarız. Yükseltme Sihirbazı Access 2013 Access 'ten kaldırılmıştır, dolayısıyla Microsoft SQL Server Geçiş Yardımcısı 'nı (SSMA) kullanabilirsiniz. Başarılı bir şekilde geçirmek için bu aşamaları izleyin.
Başlamadan önce
Aşağıdaki bölümlerde, başlamanıza yardımcı olacak arka plan ve diğer bilgiler sağlanır.
Bölünmüş veritabanları hakkında
Tüm Access veritabanı nesneleri tek bir veritabanı dosyasında olabilir veya iki veritabanında depolanabilir: ön uç veritabanı ve arka uç veritabanı. Bu, veritabanını bölme olarak adlandırılır ve ağ ortamında paylaşmayı kolaylaştırmak üzere tasarlanmıştır. Arka uç veritabanı dosyasında yalnızca tablolar ve ilişkiler olmalıdır. Ön uç dosya yalnızca formlar, raporlar, sorgular, makrolar, VBA modülleri ve arka uç veritabanıyla bağlantılı tablolar gibi diğer tüm nesneleri içermelidir. Access veritabanını geçirdiğinizde, bu veritabanı SQL Server 'daki bölünmüş bir veritabanına benzer ve bu bir sunucuda bulunan veriler için yeni bir arka uç olarak davranır.
Bu nedenle, bağlantılı tablolarla birlikte ön uç Access veritabanını SQL Server tablolarına da devam edebilirsiniz. Bu, SQL Server 'ın ölçeklenebilirliği ile birlikte bir Access veritabanının sağladığı hızlı uygulama geliştirme avantajlarından faydalanabilirsiniz.
SQL Server avantajları
Yine de SQL Server 'a geçiş yapmak için bazı ikna edici mi gerekiyor? İşte dikkate almak için bazı ek yararlar:
-
Diğer eşzamanlı kullanıcılar SQL Server, Access 'ten çok sayıda eşzamanlı kullanıcıyı işleyebilir ve daha fazla kullanıcı eklendiğinde bellek gereksinimlerini en aza indirir.
-
Artırılan kullanılabilirlik SQL Server ile, veritabanı kullanılırken artımlı veya eksiksiz bir şekilde yedekleme yapabilirsiniz. Sonuç olarak, verileri yedeklemek için kullanıcıları veritabanından çıkmaya zorlamanız gerekmez.
-
Yüksek performans ve ölçeklenebilirlik SQL Server veritabanı genellikle büyük, terabayt büyüklüğünde bir veritabanı ile Access veritabanından daha iyi performans getirir. Ayrıca, SQL Server, tek bir işlemde Kullanıcı isteklerini işlemek için birden çok yerel iş parçacığı kullanarak, sorguları paralel olarak işleyerek daha hızlı ve verimli bir şekilde işler.
-
Geliştirilmiş güvenlik Güvenilir bir bağlantı kullanarak, SQL Server, ağ ve veritabanına tek bir tümleşik erişim sağlamak ve her iki güvenlik sisteminin en iyi şekilde kullanılmasını sağlamak için Windows sistem güvenliğiyle birleşir. Bu, karmaşık güvenlik düzenlerini yönetmeyi çok daha kolay hale getirir. SQL Server, sosyal güvenlik numaraları, kredi kartı verileri ve gizli adresler gibi hassas bilgiler için ideal depolama alanıdır.
-
Hemen kurtarılabilirlik İşletim sistemi kilitlense veya kuvvet kilitlense, SQL Server, dakikalardan ve veritabanı yöneticisi müdahalesi olmadan otomatik olarak veritabanını tutarlı bir duruma kurtarabilir.
-
VPN kullanımı Access ve sanal özel ağlar (VPN) birlikte alınamıyor. Ancak SQL Server 'da, uzak kullanıcılar, Access ön uç veritabanını masaüstü güvenlik duvarının arkasında bulunan SQL Server arka uç veritabanını kullanmaya devam edebilir.
-
Azure SQL Server SQL Server 'ın avantajlarının yanı sıra, süre kapalı, akıllı iyileştirme, genel ölçeklenebilirlik ve uygunluk, donanım maliyetleri
En iyi Azure SQL Server seçeneğini belirleyin
Azure SQL Server 'a geçiş yapıyorsanız, seçebileceğiniz üç seçenek vardır:
-
Tek veritabanı/esnek havuzlar Bu seçeneğin, SQL veritabanı sunucusu aracılığıyla yönetilen kendi kaynak kümesi vardır. Tek bir veritabanı SQL Server 'da kapsanan bir veritabanı gibidir. Ayrıca, SQL veritabanı sunucusu aracılığıyla yönetilen bir paylaşılan kaynak kümesi içeren bir veritabanı koleksiyonu olan bir esnek havuz ekleyebilirsiniz. En yaygın kullanılan SQL Server özellikleri yerleşik yedeklemeler, düzeltme eki ve kurtarma ile kullanılabilir. Ancak garanti altında tam bir bakım süresi yoktur ve SQL Server 'dan geçiş işlemi zor olabilir.
-
Yönetilen örnek Bu seçenek, paylaşılan kaynak kümesi içeren bir sistem ve kullanıcı veritabanları topluluğudur. Yönetilen bir örnek, SQL Server veritabanının şirket içi SQL Server ile yüksek düzeyde uyumluluk olan örneği gibidir. Yönetilen örnekte yerleşik yedeklemeler, düzeltme eki, kurtarma ve SQL Server 'dan geçiş yapmak kolaydır. Ancak, kullanılamayan ve tam garanti olmayan, çok sayıda SQL Server özelliği vardır.
-
Azure Sanal Makinesi Bu seçenek, Azure bulutu 'ndaki bir sanal makinede SQL Server çalıştırmanızı sağlar. SQL Server altyapısı ve kolay geçiş yolu üzerinde tam denetiminiz vardır. Ancak yedeklerinizi, düzeltme eklerini ve kurtarmayı yönetmeniz gerekir.
İlk adımlar
SıSMA 'yi çalıştırmadan önce geçiş işlemini kolaylaştırmanıza yardımcı olabilecek bir kaç sorun vardır:
-
Tablo dizinleri ve birincil anahtarlar ekleme Her Access tablosunun bir dizini ve birincil anahtarı olduğundan emin olun. SQL Server tüm tablolarda en az bir dizine sahip olmasını gerektirir ve tablo güncelleştirilebiliyorsanız bağlı tablonun birincil anahtarın olmasını gerektirir.
-
Birincil/yabancı anahtar ilişkilerini denetleme Bu ilişkilerin tutarlı veri türleri ve boyutlarına sahip alanlara dayanmasını sağlayın. SQL Server, yabancı anahtar kısıtlamalarındaki farklı veri türleri ve boyutlarına sahip birleştirilmiş sütunları desteklemez.
-
Ek sütununu kaldırma SSMA ek sütununu içeren tabloları geçirmiyor.
SSMA 'yi çalıştırmadan önce aşağıdaki ilk adımları uygulayın.
-
Access veritabanını kapatın.
-
Veritabanına bağlı olan kullanıcıların da veritabanını kapamasını sağlayın.
-
-
Veritabanınızı yedekleyin. Daha fazla bilgi için bkz: yedekleme ve geri yükleme işlemleriyle verilerinizi koruma.
İpucu Mümkünse, tek başına Access sürümünü kullanın. Yalnızca Microsoft 365 'i kullanıyorsanız Access 2010 veritabanı altyapısını kullanarak Access veritabanınızı geçiş Daha fazla bilgi için bkz: Microsoft Access veritabanı altyapısı 2010 yeniden dağıtılabilir.
SSMA
Microsoft, geçişin kolaylaştırmak için MICROSOFT SQL Server Geçiş Yardımcısı 'nı (SSMA) sağlar. SSMA temel olarak tabloları geçirir ve parametresiz sorguları seçer. Formlar, raporlar, makrolar ve VBA modülleri dönüştürülmez. SQL Server meta veri Gezgini, Access veritabanı nesnelerinizi ve SQL Server nesnelerinizi görüntüler ve her iki veritabanının geçerli içeriğini gözden geçirmenizi olanak tanır. Bu iki bağlantı, gelecekte ek nesneler aktarmaya karar vermeniz gerekir.
Not Geçiş süreci, veritabanı nesnelerinize ve aktarılması gereken veri miktarına bağlı olarak biraz zaman alabilir.
-
Bir veritabanını SSMA kullanarak geçirmek için, önce indirilen MSI dosyasına çift tıklayarak yazılımı indirin ve yükleyin. Bilgisayarınız için uygun 32 veya 64 bit sürümünü yüklediğinizden emin olun.
-
SSMA 'yi yükledikten sonra, bilgisayarınızda Access veritabanı dosyası olan tercihen masaüstünüzde açın.
Paylaşılan bir klasördeki Access veritabanına erişimi olan bir makinede de açabilirsiniz.
-
SQL Server konumu, Access veritabanı ve geçirilecek nesneler, bağlantı bilgileri ve bağlantılı tablolar oluşturmak isteyip istemediğiniz gibi temel bilgileri sağlamak için SSMA 'daki başlangıç yönergelerini izleyin.
-
SQL Server 2016 veya sonraki bir sürümüne geçiş yapıyorsanız ve bağlantılı tabloyu güncelleştirmek istiyorsanız, genel> >proje ayarları 'nı seçerek bir ROWVERSION sütunu ekleyin.
Rowversion alanı kayıt çakışmalarını önlemeye yardımcı olur. Access, kaydın en son ne zaman güncelleştirileceğini belirlemek için bu rowversion alanını SQL Server bağlantılı bir tabloda kullanır. Ayrıca, rowversion alanını bir sorguya eklerseniz, Access bunu bir güncelleştirme işleminden sonra satırı yeniden seçmek için kullanır. Bu, Access 'in özgün gönderimden farklı sonuçlar algıladığı durumda, örneğin kayan nokta numarası veri türlerinde ve sütunları değiştiren tetikleyicilerle ilgili olarak ortaya çıkabilecek tetikleyiciler gibi, Yazma çakışması hataları ve kayıt silme senaryolarını ortadan kaldırır. Ancak, formlarda, raporlarda veya VBA kodunda rowversion alanını kullanmaktan kaçının. Daha fazla bilgi için bkz.
Not Zaman damgalarının kafa karıştırıcı rowversion 'ı kullanmaktan kaçının. Anahtar sözcük damgası, SQL Server 'da rowversion için eşanlamlısı olsa da, ROWVERSION 'yi veri girdisine zaman damgası eklemek için kullanamazsınız.
-
Hassas veri türlerini ayarlamak için , >proje ayarları > tür eşleme'yi seçin. Örneğin, yalnızca Ingilizce metin depolarsanız, nvarchar veri türü yerine varchar kullanabilirsiniz.
Nesneleri dönüştürme
SSMA Access nesnelerini SQL Server nesnelerine dönüştürür, ancak nesneleri hemen kopyalamaz. SSMA geçirilecek olan aşağıdaki nesnelerin bir listesini sağlar, böylece bunları SQL Server veritabanına taşımak isteyip istemediğinize karar verebilirsiniz:
-
Tablolar ve sütunlar
-
Parametresiz sorguları seçin.
-
Birincil ve yabancı anahtarlar
-
Dizinler ve varsayılan değerler
-
Kısıtlamaları denetleme (sıfır uzunlukta sütun özelliğine izin ver özelliği, sütun doğrulama kuralı, tablo doğrulama)
En iyi uygulama olarak, hataları, uyarıları, bilgi iletilerini, geçiş işlemini gerçekleştirmek için zaman tahminleri ve nesneleri gerçekten taşıyamadan önce gerçekleştirilecek tek hata düzeltme adımlarını gösteren SSMA değerlendirme raporunu kullanın.
Veritabanı nesnelerini dönüştürmek, Access meta verilerindeki nesne tanımlarını alır, bunları eşdeğer Transact-SQL (T-SQL) sözdiziminedönüştürür ve bu bilgileri projeye yükler. SQL Server veya SQL Azure meta veri Gezgini 'ni kullanarak SQL Server veya SQL Azure nesnelerini ve özelliklerini görüntüleyebilirsiniz.
Nesneleri SQL Server 'a dönüştürmek, yüklemek ve geçirmek için Bu kılavuzu izleyin.
İpucu Access veritabanınızı başarılı bir şekilde geçirdikten sonra, test veya son geçiş için verilerinizi yeniden geçirebilmeniz için, daha sonra kullanmak üzere proje dosyasını kaydedin.
Tabloları bağlama
Windows ile birlikte gelen yerel SQL Server sürücülerini kullanmak yerine SQL Server OLE DB ve ODBC sürücülerinin en son sürümünü yüklemeyi düşünebilirsiniz. Yeni sürücüler daha hızlıdır, ancak önceki sürücülerin olmadığı Azure SQL 'deki yeni özellikleri destekler. Dönüştürülen veritabanının kullanıldığı her bilgisayarda sürücüleri yükleyebilirsiniz. Daha fazla bilgi için, SQL Server Için MICROSOFT OLE DB Driver 18 ve SQL Server Için Microsoft ODBC Driver 17bölümüne bakın.
Access tablolarını geçirdikten sonra, SQL Server 'da verilerinizi barındıran tablolara bağlanabilirsiniz. Doğrudan Access 'den bağlamak, daha karmaşık SQL Server yönetim araçlarını kullanmak yerine verilerinizi görüntülemek için daha kolay bir yol sağlar. SQL Server veritabanı yöneticiniz tarafından ayarlanan izinlerebağlı olarak, bağlantılı verileri sorgulayabilir ve düzenleyebilirsiniz.
Not Bağlama işlemi sırasında SQL Server veritabanınıza bağlantı oluşturduğunuzda bir ODBC DSN oluşturursanız, yeni uygulamayı kullanan tüm makinelerde aynı DSN 'yi oluşturun veya otomatik olarak DSN dosyasında depolanan bağlantı dizesini kullanın.
Daha fazla bilgi için, bir Azure SQL Server veritabanından veri içeri aktarma ve SQL Server veritabanındaki verileri içeri aktarma veya verilere bağlanma konusuna bakın.
İpucu Tabloları kolayca yenilemek ve yeniden bağlamak için Access 'te bağlantılı tablo Yöneticisi 'ni kullanmayı unutmayın. Daha fazla bilgi için bkz.
Test et ve Düzelt
Aşağıdaki bölümlerde, geçiş sırasında karşılaşabileceğiniz yaygın sorunlar ve bunlarla nasıl başa çıkılabileceğiniz açıklanır.
Sorgular
Yalnızca seçme sorguları dönüştürülür; parametre alan seçme sorguları dahil diğer sorgular da yoktur. Bazı sorgular tümüyle dönüştürülemeyebilir ve dönüştürme işlemi sırasında SSMA raporları sorgu hataları bildiriyor. T-SQL söz dizimini kullanarak Dönüştürülmeyen nesneleri el ile düzenleyebilirsiniz. Söz dizimi hataları, Access 'e özel işlevleri ve veri türlerini SQL Server 'a göre el ile dönüştürmeyi gerektirebilir. Daha fazla bilgi için bkz: SQL Server TSQL Ile Access SQL karşılaştırması.
Veri türleri
Access ve SQL Server 'da benzer veri türleri vardır, ancak aşağıdaki olası sorunlardan haberdar olun.
Büyük Sayı Büyük sayı veri türü parasal olmayan sayısal bir değer depolar ve SQL bigint veri türüyle uyumludur. Bu veri türünü büyük sayıları etkili bir şekilde hesaplamak için kullanabilirsiniz, ancak Access 16 (16.0.7812 veya üzeri). accdb 64 veritabanı Daha fazla bilgi için, büyük sayı veri türünü kullanma ve Office 'in 64 bit veya 32 bit sürümü arasında seçim yapın.
Evet/Hayır Varsayılan olarak, bir Access Evet/Hayır sütunu SQL Server bit alanına dönüştürülür. Kayıt kilitlemesinin oluşmaması için, bit alanının NULL değerlerine izin vermeyecek şekilde ayarlandığından emin olun. SSMA 'DA, Boşlara Izin ver özelliğini Hayır olarak ayarlamak için bit sütununu seçebilirsiniz. TSQL 'da Create Table veya alter table deyimleri kullanın.
Tarih ve Saat Birkaç tarih ve saat vardır:
-
Veritabanının uyumluluk düzeyi 130 (SQL Server 2016) veya üzeri ise ve bağlantılı bir tablo bir veya daha fazla DateTime veya datetime2 sütunu içeriyorsa, tablo sonuçlarda ileti #deleted döndürebilir. Daha fazla bilgi için bkz: SQL-sunucu veritabanına Access bağlantılı tablo #deleted döndürüyor.
-
Tarih saat veri türüne eşlemek için Access tarih/saat veri türünü kullanın. Daha büyük bir tarih ve saat aralığı içeren datetime2 veri türüne eşlemek Için erişim tarihi/saati genişletilmiş veri türünü kullanın. Daha fazla bilgi için bkz .
-
SQL Server 'da tarihleri sorgularken, tarihi de dikkate alın. Örneğin:
-
1/1/19 ile 1/31/19 arasında sıralanan Tarihtüm siparişleri içermeyebilir.
-
1/1/19 00:00:00 Ile 1/31/19 11:59:59 arasında sıralanan Tarihtüm siparişleri içerir.
-
Ek Ek veri türü dosyayı Access veritabanında depolar. SQL Server 'da dikkate almanız gereken birkaç seçeneğiniz vardır. Access veritabanından dosyaları ayıklayabilir ve SQL Server veritabanınızda dosyaların bağlantılarını depolamanızı düşünebilirsiniz. Alternatif olarak, SQL Server veritabanında eklerin depolanması için FıLESTREAM, FileTables veya uzak BLOB Mağazası (KÇY) kullanabilirsiniz.
Köprü Access tablolarında, SQL Server 'ın desteklemediği köprü sütunları vardır. Varsayılan olarak, bu sütunlar SQL Server 'da nvarchar (max) sütunlarına dönüştürülür ancak daha küçük bir veri türü seçmek için eşlemeyi özelleştirebilirsiniz. Access çözümünüzde, denetimin köprü özelliğini doğru olarak ayarlarsanız, formlar ve raporlar 'daki köprü davranışını kullanmaya devam edebilirsiniz.
Çok değerli alan Çok değerli Access alanı SQL Server 'a, sınırlanmış değer kümesini içeren bir ntext alanı olarak dönüştürülür. SQL Server çoka çok ilişkiyi modelleyen birden çok değerli alanı desteklemediğinden, ek tasarım ve dönüştürme çalışması gerekebilir.
Access ve SQL Server veri türlerini eşleme hakkında daha fazla bilgi için bkz.
Not Çok değerli alanlar dönüştürülmez ve Access 2010 'da sona erdirilmiş.
Visual Basic
VBA SQL Server tarafından desteklenmemesine rağmen, aşağıdaki olası sorunları unutmayın:
Sorgularda VBA işlevleri Access sorguları, sorgu sütunundaki verilerde VBA işlevlerini destekler. Ancak VBA işlevleri kullanan Access sorguları SQL Server 'da çalıştırılamaz, dolayısıyla tüm talep edilen veriler işlenmek üzere Microsoft Access 'e geçirilir. Çoğu durumda, bu sorgular doğrudan sorgularadönüştürülmelidir.
Sorgularda Kullanıcı tanımlı Işlevler Microsoft Access sorguları, geçirilen verileri işlemek için VBA modüllerinde tanımlanmış işlevlerin kullanılmasını destekler. Sorgular tek tek sorgular, form/rapor kayıt kaynaklarındaki SQL deyimleri, bileşen, rapor ve tablo alanlarındaki veri kaynakları ve varsayılan veya geçerlilik kuralı ifadeleri olabilir. SQL Server bu kullanıcı tanımlı işlevleri çalıştıramaz. Bu işlevleri el ile yeniden tasarlamanız ve SQL Server 'daki saklı yordamlara dönüştürmeniz gerekebilir.
Performansı iyileştir
En önemli yöntem, yeni, arka uç SQL Server ile performansı en iyi duruma getirmek için en önemli yoldur, yerel veya uzak sorguların ne zaman kullanılacağına karar vermezsiniz. Verilerinizi SQL Server 'a geçirdiğinizde, bir dosya sunucusundan bir istemci-sunucu veritabanı modeli Bu genel yönergeleri izleyin:
-
İstemcide hızlı erişim için küçük, salt okunur sorgular çalıştırabilirsiniz.
-
Daha yüksek işlemci gücünden yararlanmak için sunucuda uzun, okuma/yazma sorguları çalıştırabilirsiniz.
-
Yalnızca ihtiyacınız olan verileri aktarmak için filtreleri ve toplamayı kullanarak ağ trafiğini simge durumuna küçültün.
Daha fazla bilgi için bkz .
Aşağıda, önerilen ek yönergeler verilmiştir.
Sunucuya mantık koyma Uygulamanız Ayrıca görünümleri, Kullanıcı tanımlı işlevler 'i, saklı yordamları, hesaplanan alanları ve Tetikleyiciler 'i, uygulama mantığını, iş kurallarını ve ilkelerini, karmaşık sorguları, veri doğrulamayı ve sunucudaki bilgi tutarlılığını, bilgi tutarlılığını, veri doğrulamayı Kendinize sorun, bu sorgu veya görev sunucuda gerçekleştirilemiyor Son olarak, en iyi performansı elde etmek için her sorguyu test edin.
Formlarda ve raporlarda görünümleri kullanma Access 'te aşağıdakileri yapın:
-
Formlar için, salt okunur bir form için SQL görünümünü ve kayıt kaynağı olarak okuma/yazma formu için bir SQL dizinli görünümü kullanın.
-
Raporlar için kayıt kaynağı olarak bir SQL görünümü kullanın. Ancak, her rapor için ayrı bir görünüm oluşturarak, belirli bir raporu diğer raporları etkilemeden daha kolay güncelleştirebilirsiniz.
Form veya raporda verileri yüklemeyi küçültme Kullanıcı bunu değiştirene kadar verileri görüntülememe. Örneğin, RecordSource özelliğini boş bırakın, kullanıcıların formunuzda filtre seçmesini sağlayın ve ardından RecordSource özelliğini filtreniz ile doldurun. Veya kullanıcının ihtiyaç duyduğu tam kayıtları görüntülemek için DoCmd. FormAç ve DoCmd. OpenReport 'un WHERE yan tümcesini kullanın. Kayıt gezintisini kapatmayı düşünebilirsiniz.
Heterojen sorgularla ilgili dikkatli olun Yerel bir Access tablosunu ve SQL Server bağlantılı tabloyu birleştiren bir sorgu kullanmaktan kaçının, bazen karma sorgu olarak da adlandırılır. Bu türde bir sorgu, tüm SQL Server verilerini yerel makineye indirmek için Access gerektirir ve sorguyu çalıştırır.
Yerel tablolar ne zaman kullanılır Bir ülke veya bölgedeki eyalet ya da eyalet listesi gibi nadiren değişiklik yaptığınız veriler için yerel tablolar kullanmayı düşünebilirsiniz. Statik tablolar genellikle filtreleme için kullanılır ve Access ön ucunda daha iyi sonuç verebilir.
Daha fazla bilgi için, Database Engine Tuning AdvisorAccess veritabanını en iyi duruma getirmek için performans çözümleyici 'YI kullanınve SQL Server 'A bağlı Microsoft Office Access uygulamalarını en iyi durumagetirebilirsiniz.
Ayrıca Bkz:
Not: Bu sayfanın çevirisi otomasyon aracılığıyla yapılmıştır ve bu nedenle hatalı veya yanlış dil bilgisi kullanımları içerebilir. Amacımız, bu içeriğin sizin için faydalı olabilmesini sağlamaktır. Bu bilgileri yararlı bulup bulmadığınızı bizimle paylaşır mısınız? Kolayca başvurabilmek için İngilizce makaleye buradan ulaşabilirsiniz.