מילוי טבלת תאריכים SQL

אירית145

New member
מילוי טבלת תאריכים SQL

שלום,
איך אפשר למלות טבלת תאריכים בצורה יעילה לטווח ארוך?
למשל, אני רוצה שטבלת התאריכים שלי תכיל את התאריכים ל-20 שנה קדימה
אני מבינה שזה ממש לא יהיה נכון לעשות את זה באמצעות INSERT VALUE, כי מדובר בהמון רשומות

תודה
 

pitoach

New member
כל התאריכים נמצאים כבר במערכת ההפעלה!

לשם מה את צריכה מידע מיותר במסד הנתונים?
אני מציע לחשוב על תכנון האפליקציה שלך, על פני השטח הצורך הזה יכול להצביע על ארכיטקטורה לא טובה.

בכל מקרה אם זה מה שאת רוצה אז הדרך היא פשוטה
* בכל מערכת צריכה להיות טבלת מספרים מוכנה. אני אסתמך על טבלה זו (לשם זה היא נמצאת במערכת כטבלת עזר!)
ייצור טבלה של תאריכים והכנסת מליון רשומות אמור להיות פעולה מהירה מאוד, במחשב חלש מאוד וירטואלי, זה לקח לי 344 אלפיות שנייה:
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server Execution Times:
CPU time = 297 ms, elapsed time = 344 ms.
(1000000 row(s) affected)

והנה השאילתה שאסור להשתמש בה, ומצביעה על תכנון לקוי כניראה:
select top 1000000 DATEADD(day,N,CONVERT(DATE,getdate())) as MyDate
into NewDatesTable
from _ArielyAccessoriesDB.dbo.Numbers
 

pitoach

New member
כמה זה המון?!? את מדברת על מספרים זניחים

אנשים כל הזמן לא מבינים את היכולת של השרתים וזורקים אמירות כמו מסד נתונים ענק כשהם עובדים עם מסד נתונים קטן מאוד של כמה גיגה או המון רשומות כשעובדים עם כמה מליוני רשומות...
אם הדברים עובדים לאט או לא טוב זה בגלל מי שמפעיל אותם בדרך כלל (המשתמש, האפליקציות, התכנון) ולא השרת עצמו


ענק זה מאות טרה בייט

המון רשומות, זה שבכל שנייה מכניסים מליון רשומות (וגם זה לא המון אלא רק הרבה מאוד ונעשה בהרבה מערכות).
* כאמור הביצועים עם זה נלקחם מגורמים רבים (ומתחילים בידע של המשתמש).
 

nitzos1

New member
הנחות יסוד חרדתיות

הצורך הוא לא מובן
אבל ניתן למלא טבלה בדרכים שציינת ללא כל בעיה
7300 רשומות זה כמות קטנה ביותר לשרת SQL ולכל בסיס נתונים שקיים בשטח.
בהצלחה
שמוליק ב
 
למעלה