2012-01-12 16 views
7

क्या एसक्यूएल लाइट टेबल के लिए पंक्तियों की कुछ सीमा है? मेरा ऐप "कोई ऐसी तालिका x ..." त्रुटि नहीं दे रहा है जब उस तालिका में 6000 से अधिक पंक्तियां होंगी। 6000 पंक्तियों के नीचे, कोई त्रुटि न दें।एक एसक्लाइट तालिका में पंक्तियों की अधिकतम संख्या?

धन्यवाद।

यह सवाल है।

db = (new DatabaseHelper(this)).getWritableDatabase(); 

    cursor = db.rawQuery("SELECT continentes._id, continentes.ContinenteID, continentes.Continente" 
      + " FROM continentes" 
      + " WHERE continentes.Continente LIKE ?" 
      + " GROUP BY continentes.ContinenteID, continentes.Continente ORDER BY continentes.Continente", 
       new String[]{"%" + searchText.getText().toString() + "%"}); 

यह वह जगह है जहां मैं मेज

@Override 
public void onCreate(SQLiteDatabase db) { 
    String s; 
    try { 
     Toast.makeText(context, "Creating Database", 2000).show(); 
     InputStream in = context.getResources().openRawResource(R.raw.continentes); 
     DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
     Document doc = builder.parse(in, null); 
     NodeList statements = doc.getElementsByTagName("statement"); 
     for (int i=0; i<statements.getLength(); i++) { 
      s = statements.item(i).getChildNodes().item(0).getNodeValue(); 
      db.execSQL(s); 
     } 
    } catch (Throwable t) { 
     Toast.makeText(context, t.toString(), 50000).show(); 

हल बनाने !!! मुझे पता है कि मुझे यह समस्या क्यों मिली। क्योंकि एसक्यूएल डेटाबेस बनाने और पॉप्युलेट करने के लिए मैं डेटा के साथ उपयोग की जाने वाली फ़ाइलों में 1.2 एमबी से अधिक नहीं हो सकता है। तो, मैंने उन्हें विभाजित किया, और अधिक समस्याएं नहीं हैं। सभी को धन्यवाद।

+3

क्या आप अपनी क्वेरी पोस्ट कर सकते हैं? पंक्तियों की सीमा व्यावहारिक पहुंच योग्य नहीं है – Dyonisos

+0

क्वेरी के कोड के साथ पोस्ट को अद्यतन करें। – filoli

+0

क्या आप हमें लॉगैक जानकारी दे सकते हैं? – prolink007

उत्तर

6

अधिकतम पंक्तियाँ एक तालिका में संख्या

एक तालिका में पंक्तियों की सैद्धांतिक अधिकतम संख्या 2^64 (18446744073709551616 या के बारे में 1.8e + 19) है। यह सीमा पहुंच योग्य नहीं है क्योंकि अधिकतम 14 टेराबाइट्स का अधिकतम डेटाबेस आकार पहले पहुंच जाएगा। एक 14 टेराबाइट डेटाबेस लगभग 1e + 13 पंक्तियों से अधिक नहीं हो सकता है, और उसके बाद केवल कोई सूचकांक नहीं है और यदि प्रत्येक पंक्ति में बहुत कम डेटा होता है।

यहां से

: http://www.sqlite.org/limits.html

+0

मैंने इसे पढ़ लिया है, मेरा विश्वास करो। बस समझ में नहीं आ रहा है कि मेरे कोड में, जितना अधिकतम वह त्रुटि देता है, वह 6000 पंक्तियां है। धन्यवाद वैसे भी – filoli

7

आप limits of SQLite पर मानक जानकारी प्राप्त कर सकते लेकिन यह है कि क्या आपकी समस्या का कारण है के रूप में सीमा वास्तव में बहुत अधिक है होना करने के लिए नहीं जा रहा है। (2 की शक्ति के लिए 2!)

आपके मुद्दे को रिकॉर्ड और/या रिकॉर्ड्स के प्रकार डालने के तरीके के साथ आपकी समस्या के मुकाबले ज्यादा संभावना है।

क्या आप एप्लिकेशन के लिए कुछ कोड पोस्ट कर सकते हैं और यह सम्मिलन को कैसे प्रबंधित कर रहा है? मैं इसके माध्यम से पढ़ने के बाद अपना जवाब संशोधित कर सकता हूं।

एक अतिरिक्त टिप के रूप में, सुनिश्चित करें कि आप सेट कर लिया है:

Cursor myCursor = db.rawQuery("PRAGMA synchronous=OFF", null); 
myCursor.close(); 

यह वास्तव में अपने बड़े थोक आवेषण के improve the performance कर सकते हैं के रूप में।

+0

मैंने क्वेरी के कोड के साथ पोस्ट को अद्यतन किया है। धन्यवाद – filoli

1

ऐसी कोई सीमा नहीं है, नीचे देखें:

इसे कहते हैं:

अधिकतम पंक्तियों की संख्या एक टेबल में

एक तालिका में पंक्तियों की सैद्धांतिक अधिकतम संख्या 264 (18446744073709551616 या के बारे में 1.8e + 19) है। यह सीमा पहुंच योग्य नहीं है क्योंकि 14 टेराबाइट्स का अधिकतम डेटाबेस आकार पहले पहुंच जाएगा। एक 14 टेराबाइट डेटाबेस लगभग 1e + 13 पंक्तियों से अधिक नहीं हो सकता है, और उसके बाद केवल कोई सूचकांक नहीं है और यदि प्रत्येक पंक्ति में बहुत कम डेटा है।

0

पंक्तियों की अधिकतम संख्या 2^64 है।

यहां limitation page है।

+0

हाँ, लेकिन सीमा 6000 पंक्तियां नहीं है। तो, मैं समझ नहीं पा रहा हूं कि ऐप 6000 से अधिक पंक्तियों के साथ एक टेबल क्यों नहीं बना रहा है। – filoli

+0

आपकी टिप्पणी आपके प्रश्न से अलग है। जब आप तालिका उत्पन्न कर रहे हों या तालिका को घुमाने पर समस्या हो रही हो? लॉगकैट सहायक होगा। – prolink007

+0

मैंने बस लॉग बिल्ली रखी है। धन्यवाद – filoli

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