Normal
0
false
false
false
EL
X-NONE
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:22.0pt;
mso-bidi-font-size:11.0pt;
font-family:"Arial Narrow","sans-serif";
mso-fareast-language:EN-US;}
Καλησπέρα σε όλους
Αγαπητοί φίλοι έχω βρεθεί σε ένα αδιέξοδο
αλλά πιστεύω ότι κάποιος θα βοηθήσει.
Εχω ένα τεράστιο αρχείο (περίπου
45.000.000 εγγραφές μέσα σε έναν ms-sql server 2005. Καταλαμβάνει ένα πίνακα πχ Table 1.
Κανείς δεν πίστευε ότι το αρχείο
αυτό θα χρησιμοποιούνταν ποτέ αλλά έφτασε ή ανάγκη χρήσης του μέσα από συγκεκριμένα
queries. Μέχρι εδώ καλά.
Ο πίνακας γεμίζει με περίπου
2.000.000 εγγραφές τον μήνα ως εξής: Έρχεται ένα μεγάλο .csv αρχείο από ένα
σύστημα το οπποίο εισάγεται σε μία βάση Ms-Access. Εκεί γίνονται
τα ακόλουθα:
1.
Το αρχείο δίνει ένα πεδίο text με την ημερομηνία και την ώρα σε
μορφή 19/12/2009 15:31:45 το οποίο σπάω σε δύο, ημερομηνία και ώρα με την
εντολή format ([Πεδίο];”dd/mm/yyyy”) για την
ημερομηνία και αντίστοιχα και με την ώρα.
2.
Όταν τελειώνει η χρήση του μηναίου
αρχείου, γίνεται append μες
από ένα query στον Sql Server και κρατιέται εκεί. Ανοίγοντας
τον πίνακα βλέπω κανονικά το αρχείο με την εξής λεπτομέρεια: Η
ημερομηνία και η ώρα πού είναι μια χαρά στον τοπικό πίνακα, μετατρέπεται σε
πεδίο datetime και γίνεται της μορφής 19/12/2009
00:00 ενώ ή ώρα παίρνει την μορφή 31/12/1899 15:34:45.
Το πρόβλημα είναι ότι ότα προσπαθώ
να δημιουργήσω ένα query στον
sql ή στο Visual studio 2008 της μορφής select … between … and … μού κάνει το εξής parsing πού φαίνεται παρακάτω (δεν ξέρω
γιατί κανει το convert(datetime)
SELECT TdateTime
FROM SampleData
WHERE (Tdate BETWEEN CONVERT(DATETIME,
'2009-03-01 00:00:00', 102) AND CONVERT(DATETIME, '2009-03-15 00:00:00', 102))
Και σε μικρό πίνακα μού φέρνει τα
δεδομένα (περίπου 10.000 εγγραφών). Στον πραγματικό όμως , αφού κάνω το ίδιο query, περιμένω
ώσπου να πα΄ρω το μήνυμα timeout expired.
Τι δεν κάνω καλά; Είναι πρόβλημα της
σύνταξης του query; Θέλει κάποια ρύθμιση ο sql για να μην κάνει timeout; Αν γνωρίζει κάποιος ας βοηθήσει…
arni