2012-04-12 15 views
5

कनवर्ट करना मैं एमएस एक्सेस 2000 को एमएस एक्सेस 2010 में परिवर्तित कर रहा हूं। मुझे जिस मुद्दे का सामना करना पड़ रहा है, एमएस एक्सेस 2010 रूपांतरण के बाद बहुत धीमी है (यहां तक ​​कि फ्रीज)।एमएस एक्सेस 2000 से 2010

पिछला कॉन्फ़िग: SQL सर्वर 2000 के लिंक टेबल्स विंडोज पर बैठे साथ XP पर एमएस एक्सेस 2000 2000

न्यू कॉन्फ़िग: विंडोज 7 पर एमएस पहुँच 2010 एसक्यूएल सर्वर 2000 बैठे लिए लिंक तालिकाओं के साथ विंडोज पर 2000 न्यू कॉन्फ़िग के तहत

पहुँच दर्दनाक धीमी गति से या कभी कभी रुक जाता है और एक दृश्य स्टूडियो डेस्कटॉप आवेदन के साथ एक ही स्थिति दुर्घटनाओं, यह दर्दनाक Win7 पर धीमी गति से चलाता है, जबकि मैं है एक्स एक्सपी पर अच्छा चल रहा है।

बातें मैं कोशिश की है:

  1. 2000 संस्करण से
  2. लिंक्ड टेबल्स आदि
  3. एमएस ऑफ़िस मैक्स बदलने रिफ्रेशिंग परिवर्तित एक नई MS बनाने पहुँच 2010 और आयात करने से सभी वस्तुओं एमएस एक्सेस 2000 रजिस्ट्री में बफर आकार 55000 (जैसा कि कुछ एमएस समर्थन साइटों में सुझाया गया है)

अब तक कोई सुधार नहीं है।

+1

क्या कोई कारण है कि आपने SQL Server 2000 को SQL Server 2008 Express जैसे कुछ अपग्रेड नहीं किया है? – HK1

+2

क्या आपने http://social.technet.microsoft.com/Forums/en/office2007deploymentcompatibility/thread/88542372-0fcb-4521-87ec-e2ab72e688dd देखा था? – Fionnuala

+0

समर्पित डीबी सर्वर के उपयोग में होने पर लिंक किए गए तालिकाओं से बचने के लिए हमेशा सर्वोत्तम होता है, अपनी प्रसंस्करण शक्ति का लाभ उठाएं और पूरे एडीओ कनेक्शन शैली को अपनाएं। इसमें सर्वर को सभी काम करने के अलावा कुछ भी छोड़ दिया जाएगा जो एक्सेस के बाहर नहीं किया जा सकता है। –

उत्तर

2

उत्तर देना मुश्किल है क्योंकि समस्या की उत्पत्ति कई हो सकती है। चूंकि दोनों क्लाइंटों में एक ही ओएस कॉन्फ़िगरेशन नहीं है, इसलिए हम यह नहीं छोड़ सकते कि समस्या दो ओएस के बीच कॉन्फ़िगरेशन के अंतर से आती है।

सबसे पहले आप विचार कर सकते हैं अगर कनेक्शन पीसी की वजह से धीमी है, प्रवेश या अपने डीबी:

टेस्ट: सीधा संबंध

आप एक सीधा कनेक्शन का उपयोग कर एसक्यूएल सर्वर के लिए प्रत्यक्ष कनेक्शन कोशिश कर सकते हैं लिंक्ड टेबल की बजाय। इसके लिए, आप अपने SQL सर्वर से कनेक्ट एक नई एक्सेस प्रोजेक्ट बना सकते हैं। एक एक्सेस प्रोजेक्ट एक प्रकार का एक्सेस डेटाबेस है जो लिंक किए गए तालिका के बिना सीधे SQL सर्वर से कनेक्ट होता है। यह एक मूल ग्राहक का उपयोग करता है। आप सीधे अपने SQL सर्वर डेटाबेस की तालिका को एक्सेस में देख सकते हैं, और आप उन्हें संपादित कर सकते हैं। एक एक्सेस प्रोजेक्ट का विस्तार एमडीबी नहीं बल्कि एडीपी है। एक्सेस प्रोजेक्ट एक्सेस 2010 में छिपा हुआ है लेकिन अच्छी तरह से समर्थित है।

एक्सेस प्रोजेक्ट बनाने के लिए: मेनू पर जाएं -> नया, फिर फ़ाइल आइकन पर क्लिक करें और फिर "प्रकार के रूप में सहेजें" चुनें: "माइक्रोसॉफ्ट एक्सेस प्रोजेक्ट (* .adp)"।

जब एडीपी बनाया गया है, तो आपको मौजूदा SQL सर्वर डेटाबेस के लिए पैरामीटर दर्ज करने के लिए कहा जाना चाहिए। अपने पैरामीटर दर्ज करें।

फिर तालिका पैनल पर जाएं, और कुछ तालिका ब्राउज़ करने का प्रयास करें और जांचें कि यह धीमा या तेज है या नहीं।

यदि यह धीमा है => तो समस्या आपके पीसी या कनेक्शन से आ सकती है। आप अपने सीधा कनेक्शन का परीक्षण करने के लिए किसी अन्य सॉफ़्टवेयर के साथ प्रयास कर सकते हैं जो SQL सर्वर से कनेक्ट हो सकता है।

यदि यह तेज़ है => तो धीमी गति से एसीसीडीबी या ओडीबीसी लिंक से आता है।

यह भी जांच:

  • सुश्री पहुँच पिछले संस्करण के साथ अप टू डेट है और सुश्री कार्यालय पैच
  • अपने ODBC प्रणाली और "ODBC SQL सर्वर के लिए ड्राइवर" तारीख तक (पिछले करने के लिए ले रहे हैं MDAC के संस्करण)
  • आपका विंडोज 7 और सुश्री पहुँच और ODBC संस्करण एक ही टुकड़े लेकर है (32-बिट या 64-बिट) SQL सर्वर के लिए ODBC कनेक्शन के लिए
  • आपका DSN स्ट्रिंग सामान्यीकृत है
  • यदि आपका डीएसएन एक सिस्टम डीएसएन है, तो उपयोगकर्ता डीएसएन के रूप में एक नया पुन: बनाएँ और कोशिश करें।
1

सबसे पहले, सुनिश्चित करें कि आपके पास नवीनतम MDAC है। इसके बाद मैं एक्सेस से प्रश्नों को चलाने के बजाय एसक्यूएल में संग्रहित प्रक्रियाओं या तालिका-मूल्यवान कार्यों को बनाने की अनुशंसा करता हूं। एक्सेस यह सुनिश्चित करने के लिए क्वेरी को प्री-पार्स करेगा कि यह SQL सर्वर के विरुद्ध चलाएगा, और इससे चीजों को धीमा कर दिया जा सकता है। आखिरकार, यदि एक्सेस अपडेट और डिलीट कर रहा है, तो यह सुनिश्चित करने के लिए SQL सर्वर TIMESTAMP कॉलम का उपयोग करेगा कि आपके द्वारा फॉर्म खोलने के दौरान किसी और ने उस रिकॉर्ड को बदल दिया है। यदि एसक्यूएल में ऐसा कॉलम नहीं है, तो एक्सेस को सभी ट्रैकिंग करना होगा। हम अभी इस माध्यम से चले गए - मैं डेवलपर से किसी भी सुझाव के लिए पूछूंगा और टिप्पणियों में पोस्ट करूँगा यदि उसके पास कुछ भी है।

2

क्या आपने कनेक्शन को खोलने की कोशिश की है? यह केवल एक अन्य accdb में लिंक्ड टेबल पर लागू हो सकता है, सुनिश्चित नहीं है।

Public Sub updateTables(bClose As Boolean) 

Dim dbsCurrent As Database 
Dim tdfSingle As TableDef 
Dim tdfCollection As TableDefs 
Dim sBasePath As String, sPath As String 
Set dbsCurrent = CurrentDb 
Set tdfCollection = dbsCurrent.TableDefs 
Set dbsHold = dbsCurrent 

Static dbsOpen As DAO.Database 

If bClose Then 
    dbsOpen.Close 
Else 
    sBasePath = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & "SB-Support\" 
    sPath = GetUNC(sBasePath & "data.dat") 

    Set dbsOpen = OpenDatabase(sPath, False, False, "MS Access;") 
    For Each tdfSingle In tdfCollection 
     If tdfSingle.SourceTableName <> "" Then 
      If tdfSingle.Fields.Count = 0 Then 
       tdfSingle.Connect = ";DATABASE=" & sPath 
       tdfSingle.RefreshLink 
      End If 
     End If 
    Next 
End If 

Exit Sub 

End Sub

:

मैं एक समय पहले इस मुद्दे था इसलिए मैं अब कनेक्शन के रूप में लंबे समय के रूप पहुँच चल रहा है खोलने के रखने के लिए, यहां इस बात के लिए मेरी उप के एक छीन नीचे संस्करण है मुझे लगता है कि मैं मूल रूप से इसे यहाँ से लिया गया: http://www.fmsinc.com/microsoftaccess/performance/linkeddatabase.html

मैं एक एसक्यूएल सर्वर आवश्यकता नहीं है, लेकिन एक त्वरित गूगल किसी SQL कनेक्शन के लिए OpenDatabase के लिए इस मुझे दिया:

Dim cs As String 
Dim cn As DAO.Database 
Dim ws As DAO.Workspace 
Set ws = DBEngine.Workspaces(0) 
cs = "ODBC;DRIVER=SQL Server;SERVER=Main\SQLEXPRESS;DATABASE=Workwise;APP=Visual Basic"  'UID=Peter;PWD=" 
Set cn = ws.OpenDatabase("Workwise", dbDriverNoPrompt, True, cs) 

http://www.vbforums.com/archive/index.php/t-572723.html

2

जब यह मैं जाँच करेगा क्या प्रश्नों वास्तव में एसक्यूएल सर्वर में चल रहे हैं ठंड है एसक्यूएल सर्वर में हो रहा है। जैसे। कुछ इस तरह चलाकर:

select (SELECT text FROM ::fn_get_sql(s1.sql_handle)), * 
from sys.sysprocesses s1 

मैं एक बार जहां पहुँच प्रश्नों बहुत अच्छी तरह से एसक्यूएल सर्वर में अनुवाद नहीं किया जा रहा था एक धीमी गति से पहुँच आवेदन डिबग। किसी एक्सेस क्वेरी में कुछ आसान होने के कारण कई अक्षम SQL सर्वर-सर्वर क्वेरी चलती हैं। हमने इनमें से कुछ प्रश्नों को एसक्यूएल-सर्वर विचारों के रूप में दोबारा लिखा और इसे हमारे लिए हल किया।

संबंधित मुद्दे