‏הצגת רשומות עם תוויות שאלות ותשובות. הצג את כל הרשומות
‏הצגת רשומות עם תוויות שאלות ותשובות. הצג את כל הרשומות

יום רביעי, 31 ביולי 2019

Top SQL Server migration questions

James Serra פירסם 12 שאלות (ותשובות) שעולות בדרך כלל בפרוייקטי מעבר לענן:


https://www.jamesserra.com/archive/2019/07/top-sql-server-migration-questions/


במידה ויש לכם עוד שאלות - אני זמין :-)


יום שבת, 19 ביולי 2014

Take your SQL Server development process forward!

 
שלום רב,
 
אני שמח להזמינכם למפגש הבא של הקהילה הוירטואלית - Global Hebrew Virtual Chapter .
 
במפגש שיתקיים ב - 10 לאוגוסט בשעה 17:30 אני ארצה בנושא:
Take your SQL Server development process forward
 
 
תוכן ההרצאה:
 
Database development tools have really matured over the last 5 year.
Let's take a look at the next evolution of Microsoft's tools - SQL Server Data Tools.
We'll discuss about Why is so good?
how it can improve the development process ?
and how it can save money for your organization? 
 
נתראה !
 
The Global Hebrew Virtual Chapter is an online gathering place for SQL Server DBAs and Business Intelligence professionals to discuss all things SQL Server in Hebrew language.
 

יום ראשון, 9 בפברואר 2014

פורום בסיסי נתונים

יש לכם שאלות בנושאי בסיסי נתונים?
רוצים להתייעץ עם DBA -ים בתחום?
רוצים להכיר את קהילת ה- DBA -ים בישראל?





אתם מוזמנים לפורום בסיסי נתונים באתר תפוז :
http://www.tapuz.co.il/forums2008/forumpage.aspx?forumid=193

יום חמישי, 29 בדצמבר 2011

SSRS - Graph With Dynamic Colurs


שלום רב,


אני חייב לציין כי כאשר לקוח שלי ולא משנה אם הוא מבוסס אורקל או SQL Server חושב על פתרון Reporting אני ישר מציע לו את ה- Sql Server Reporting Services.

שתי סיבות עיקריות להצעה שלי:

1. עלויות - "יש לכם בארגון כבר רישיון ל- sql server. אז למה שלא תשתמשו ביכולת מובנת שכבר יש לכם?"

2. יכולות - בעזרת ה- SSRS ניתן להקים ולפתח מערך דוחות בקלות ובמהירות ברמה מאוד גבוהה.


דוגמא ליכולת הפיתוח המהירה והיעילה בדוגמא הבאה:


לאחרונה נשאלתי אצל אחד מלקוחות ה- BI שלנו בוראסיטי כיצד ניתן להציג ב- Sql Server Reporting Services גרף עם צבעים דינמיים.


כלומר: אצל הלקוח שלי יש מספר מחלקות ולכל מחלקה צבע משלה (לטובת הייחוד וגאוות היחידה...) והלקוח מעוניין שבגרף שמציג את העמידה בתוכנית העבודה פר מחלקה - כל עמודה בגרף תיהיה בצבע של המחלקה.



אז הפתרון לבעיה הינו די פשוט ומובנה ב- Sql Server Reporting Services .


דרכי המימוש:


1. ראשית יש להקים טבלה או לכתוב שאילתא שתציג את המחלקה, אחוז העמידה בתוכנית עבודה ועמודה שלישית אשר תייצג את הצבע שלה.


2. לאחר מכן במאפיינים של הגרף ב- SSRS יש להגדיר ב- Color במקום צבע ספציפי – יש לבחור באופציית expression ולאחר מכן יש להגדיר לייצג את עמודה ה- colure שבטבלה שלנו.


ולהלן התוצאה הסופית:


פשוט וקל!


בפוסטים הבאים אני אמשיך לתת לכם טיפים נוספים בנושא.


בהצלחה!

יום חמישי, 10 בנובמבר 2011

Evaluation Period Has Expired

שלום רב,

שאלה:


הורדתי גרסת ניסיון של sql server 2008 R2 ל- 180 יום מהאתר של מייקרוסופט (http://www.microsoft.com/sqlserver/en/us/get-sql-server/try-it.aspx)

אחרי 180 יום קיבלתי במפתיע את ההו דעה הבאה:


אני מעוניין להזין את הרישיון שקניתי ל- Sql server ולשדרג את הגרסה מגרסת ניסיון, מה עליי לעשות?




תשובה:

הפתרון למקרה הינו די פשוט, כל מה שעליך לעשות הינו להריץ את קובץ ההתקנה של ה- Sql server, תחת קטגוריית ה- maintenance עליך לבחור בפונקציית : edition upgrade.
ב- wizard שיפתח לך יהיה עלייך להזין את מספר הרישיון שברשותך ולאחר מספר קליקים גרסת ה- sql server שבשרתך תהפוך להיות חוקית!

בהצלחה!

יום שני, 11 ביולי 2011

כמה ימי ראשון יש בין שני תאריכים?

שלום רב,




שאלה:
יש לי מערכת לחישוב שעות עבודה המבוססת כמובן בסיס נתונים מסוג sql server :) .
בחברה שלנו מוגדר כי יום ראשון בשבוע הינו חצי יום עבודה ולכן על מנת לחשב שעות נוספות ליום עבודה ספציפי זה , אני צריך לחשב כמה ימי ראשון יש לי בין שני תאריכים.
כיצד ניתן לחשב ב - sql server כמה ימי ראשון לדוגמא יש לי בין שני תאריכים?




תשובה:
על מנת לחשב כמה ימי ראשון, ובכלל כמה "שמות" ימים יש לי בין שני תאריכים אני אקרא בהתחלה לפונקציות dateadd ו- datename על מנת לקבל את מספר היום -
datename(weekday,dateadd(day,number,@date1).
לאחר מכן, אני אעזר בטבלת המערכת master..spt_values אשר מכילה כ- 2500 פרמטרים על מנת לפענח את שם היום.




הפתרון הינו:




declare @date1 datetime, @date2 datetime
select
@date1='2011-07-01', @date2='2011-07-11'
select
sum(case when datename(weekday,dateadd(day,number,@date1))='sunday' then 1 else 0 end)
as sundays,
sum(case when datename(weekday,dateadd(day,number,@date1))='Monday' then 1 else 0 end)
as Monday,
sum(case when datename(weekday,dateadd(day,number,@date1))='Tuesday' then 1 else 0 end)
as Tuesday,
sum(case when datename(weekday,dateadd(day,number,@date1))='Wednesday' then 1 else 0 end)
as Wednesday,
sum(case when datename(weekday,dateadd(day,number,@date1))='Thursday' then 1 else 0 end)
as Thursday,
sum(case when datename(weekday,dateadd(day,number,@date1))='Friday' then 1 else 0 end)
as Friday,
sum(case when datename(weekday,dateadd(day,number,@date1))='Saturday' then 1 else 0 end)
as Saturday
from master..spt_values
where type='p' and dateadd(day,number,@date1)<=@date2



כמובן שאפשר עוד לייעל את השליפה. ובמידה ויש לכם רעיונות נוספים לפתרון הבעיה אשמח לשמוע!!
בהצלחה!



יום שלישי, 15 במרץ 2011

Generate Script ב- SQL Server 2008 R2

שאלה:
בגרסת ה- manganese studio 2005 באופציית ה- generate script היתה לנו את היכולת להחליט את המאפיינים של יצירת הסקריפט (לדוגמא: האם להוסיף בדיקת הימצאות האובייקט לפני היצירה?, האם לייצר סקירפט לייצר אינדקסים וכו'...) . ובגרסת management studio 2008 בחירת מאפיינים אלו נעלמה...



כיצד אפשר בגרסת 2008 לבחור את מאפייני ה- Generate script?


תשובה:
אכן בגרסת 2008 כאשר בוחרים את אופציית ה- Generate Script ה- wizard כולל בתוכו רק את בחירת האובייקטים הנדרשים ללא יכולת בחירת המאפיינים.

בגרסת manganese studio 2008 R2 אנו מגדירים את מאפייני ה- Generate Script בחלון ה- option .

בהצלחה!!


http://blogs.microsoft.co.il/blogs/itaib/archive/2011/03/15/generate-script-sql-server-2008-r2.aspx

יום רביעי, 6 בינואר 2010

Trigger with insert select

שלום רב,

עלתה דרישה אצל אחד מהלקוחות שלי שאחרי כל הכנסת לקוח בטבלת הלקוחות תרוץ פרוצדורה שמקבלת את מספר הלקוח ושולחת לו מייל עם פרטי ההרשמה.

במבט ראשון, הפתרון הינו פשוט :

נקים טריגר על הטבלה , שאחרי כל Insert לטבלת הלקוחות , הטריגר יקבל את מספר הלקוח מטבלת המערכת - inserted שבטריגר ויעביר אותה לפרוצדורה.

בדרך כלל הטריגר יראה כך:

CREATE TRIGGER [dbo].[tri_TRIGGER_test_insert]
ON [dbo].[t_test_trigger]
AFTER INSERT
AS
declare @id int
select @id = id from inserted
exec p_send_mail @id
GO

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

ראשית ניצור טבלה:
CREATE table t_test_trigger
( id int)
go

להלן טריגר אשר אחרי כל הכנסת רשומה ידפיס את המספר הלקוח שהוכנס:
alter TRIGGER [dbo].[tri_TRIGGER_test_insert]
ON [dbo].[t_test_trigger]
AFTER INSERT
AS
declare @id int
select @id = id from inserted
select @id
GO

במידה ונבצע הכנסת נתונים בדרך הבאה, הכל יעבוד כשורה והטריגר יקפוץ 3 פעמים:
insert into t_test_trigger values (1)
insert into t_test_trigger values (2)
insert into t_test_trigger values (3)

אך שימו לב שאם נבצע הכנסת נתונים בו זמנית, הטריגר יקפוץ פעם אחד בלבד:
insert into t_test_trigger
select *
from t_test_trigger

במקרה שכזה הפרוצדורה תרוץ רק פעם אחת, ורק לקוח אחד יקבל מייל...

פתרון:
במקרים בהם אנו יודעים שאופי הכנסת הנתונים מול הטבלה הינה גם על ידי
insert and select
הפתרון הינו לשים לולאה בתוך הטריגר אשר תרוץ על נתוני טבלת ה- inserted וכך הפרוצדורה שלנו תרוץ על כל הרשומות.

לדוגמא:
alter TRIGGER [dbo].[tri_TRIGGER_test_insert]
ON [dbo].[t_test_trigger]
AFTER INSERT
AS

DECLARE @id int
DECLARE uniques_cursor CURSOR FOR

select id from inserted

OPEN uniques_cursor
FETCH NEXT
FROM uniques_cursor
INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN

select @id

FETCH NEXT
FROM uniques_cursor
INTO @id
END
CLOSE uniques_cursor
DEALLOCATE uniques_cursor

GO


מוסר השכל - לפני כתיבת הקוד ויישום פתרון בבסיס הנתונים ובכלל חשוב לבצע מיפוי ואפיון לעומק על מנת להבין ולמצוא גם את מקרי הקצה - וזאת על מנת למנוע באגים !

בהצלחה.

יום רביעי, 2 בדצמבר 2009

העלאת גרסת בסיס נתונים

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


תשובה:
ראשית, בעת עליית גרסה חשוב לבדוק מה השינויים בין הגרסה החדשה לבין הגרסה
הקודמת - לטובת העניין תוכל להשתמש בכלי צד שלישי אשר משווים בין סביבות.

לאחר מכן, את סכמת הטבלאות , וקטעי הקוד בבסיס הנתונים תוכל להעלות על ידי
סקירפט - (קליק ימני על בסיס הנתונים המבוקש).
כמו-כן, בגרסת SQL Server Management Studio של ה- 2008 אתה יכול לכלול בסקריפט
גם data (ולא רק סכמה).

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

בהצלחה.

יום שני, 12 באוקטובר 2009

בעיית הרשאות ב SSIS

שאלה:

אני מריץ package ב SSIS והוא עבוד מצוין .
ושאני מפעיל אותו דרך הJOB יש לי הודעת שגיאה
Executed as user: DWH-LOADER\SYSTEM.
... 9.00.3042.00 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 11:23:39 AM Error: 2009-10-08 11:23:39.54 Code: 0xC0202009 Source: MainMap Connection manager "ICQ" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E4D. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E4D Description: "Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.". End Error Error: 2009-10-08 11:23:39.54 Code: 0xC020801C Source: MainMap Log provider "SSIS log provider for SQL Server" Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "ICQ" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. COM error object... The package execution fa... The step failed.
שאני מסתכל בdatasource ב JOBS
אלו שני ה connection string שאיתם אני מתחברData Source=DWH-DB;Initial Catalog=ICQ;Provider=SQLOLEDB.1;Integrated Security=SSPI;Auto Translate=True;Data Source=DWH-DB;Initial Catalog=ICQ;Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=True;
למה יש לי הודעת שגיאה ?

תשובה:
1. במידה ואתה מגדיר ב- datasource שם משתמש (login) וסיסמה ה- job מצליח?
כלומר בנפילת SSIS ע"י ה- JOB חשוב לוודא מה מקור הבעיה, בהחלט יכול להיות שמקור הבעיה הינה Integrated Security.
2. תוודא של- owner של ה- job יש הרשאות.

בהצלחה.

יום חמישי, 30 באפריל 2009

שחרור טרזנצקיות של משתמש

שאלה:
יש לי בסיס נתונים שאני רוצה למחוק אותו אבל קיים יוזר שמשתמש בו כרגע.
אני לא רוצה למחוק את ההרשאות של היוזר אבל אני רוצה להעיף אתו כרגע. מה לעשות ?

תשובה:
תריץ את הפקודה sp_who2 , ולאחר מכן תבצע kill ל- spid של היוזר הרלוונטי.

בהצלחה.

יום רביעי, 18 במרץ 2009

The product level is insufficient

שאלה:

בעת ייבוא Flat File או Excel File בSQL 2005 SP1
אני מקבלת הודעת שגיאה בשלב האימות:
Validating (Error)
Error 0xc00470fe: Data Flow Task: The product level is insufficient for
component "
(SQL Server Import and Export Wizard)

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

תשובה:
הבעיה קוראת כאשר יש הבדלי service pack בין שרת בסיס הנתונים לבין כלי הניהול איתו את עובדת.