מחיקת כמות גדולה של נתונים

23/01/2014

אם רוצים למחוק את כל הנתונים מהטבלה משתמשים כידוע ב-Truncate – פעולה שלמעשה יוצרת את הטבלה מחדש כשהיא ריקה, ולכן היא מהירה יותר (אם כי מחייבת הרשאות מתאימות).כשרוצים למחוק כמות גדולה של נתונים – מיליוני שורות ומעלה – כדאי לעשות זאת במנות: בכל פעם כמות סבירה של שורות, עד שכולן ימחקו.להלן קוד חסכוני (מעט לכתוב..) למחיקה של נתונים במנות של 1,000,000 שורות, כאשר RowCount מציין כמה שורות למחוק בכל פעם, ו-@@RowCount בודק כמה נמחקו כדי לדעת לעצור כשלא ימחקו יותר (ה-Select נועד לאתחל אותו עבור לולאת ה-While): Set RowCount 1000000;Select @@RowCount;While @@RowCount>0DeleteFrom ...
אין תגובות

שינוי שם דטבייס

19/01/2014

משימה די פשוטה בהתחלה, אך המשכה מסובך: יש לשנות את שם הדטבייס MyDB ל-Prj_MyDB, כלומר – הוספת קידומת לשם הדטבייס, ואולי לעוד כמה דטבייסים שמשתתפים בפרוייקט.אפשר לעמוד על שם הדטבייס ב-SSMS, קליק ימני ו-Rename (ואולי אפילו קליק שמאלי ולשנות ישר),ואפשר באמצעות קוד: Use masterAlter Database MyDB Modify Name=Prj_MyDB; יש גם פקודה SP_RenameDB אולם מיקרוסופט מהלכים עלינו אימים שהיא תבוטל בעתיד..הפקודה הנ"ל תיכשל אם מישהו נמצא באותו זמן בדטבייס (וזה כולל אותנו אם חיטטנו בו ב-SSMS ב-Object Explorer בשוליים השמאליים), אך אפשר להפוך את הדטבייס ל-Single User כך: Use masterAlter Database MyDB Set Single_User;Alter Database MyDB Modify Name= Prj_MyDB;Alter...
תגיות: ,
אין תגובות

סדר העמודות באינדקס

15/01/2014

ניצור שני העתקים של טבלת המערכת sys.messages. המפתח של הטבלה הוא 2 העמודות (message_id,language_id), וכך בכל העתק ניצור את המפתח בסדר אחר של העמודות, ונראה האם ומתי זה משנה, ומה עדיף ומתי.הפואנטה כאן היא העובדה שהגרנולריות או הסלקטיביות של language_id היא קטנה (יש מעט ערכים שונים בעמודה זו, 11 בגרסה R2(,ואילו זו של message_id היא גדולה (כ-9000 בגרסה הנ"ל): Use tempdb;Go If Object_ID('T_Messages1','U') Is Not Null Drop Table T_Messages1;Select * Into T_Messages1 From sys.messages;Go Alter Table T_Messages1Add Constraint Primary Key Clustered(message_id,language_id);Go If Object_ID('T_Messages2','U') Is Not Null Drop Table T_Messages2;Select * Into T_Messages2 From sys.messages;Go Alter Table T_Messages2Add Constraint Primary Key...
תגיות: , ,
אין תגובות