ما دوتا سرور داريم به اسم هاي سرور 1 و سرور 2 كه سرور 2 كانفيگ بسيار بسيار بالاتري نسبت به سرور 1 داره
بر روي سرور 1 ويندوز سرور 2003 و SQL 2000 نصب هست و بر روي سرور 2 Windows Server 2008 و SQL 2008R2
روي هر دو سرور يك بك آپ مشابه از بانك ها رو ريستور كرديم كه هيچ فرقي با هم نداشته باشند
طبيعتا روي سرور 2 كوئري ها با سرعت فوق العاده بيشتري نسبت به سرور شماره 1 اجرا مي شوند اما ...
يك كوئري كوچك و ساده كل معادلات رو زير سوال برده !
کد:
SELECT TOP (1) E.dateemployee, E.married, E.SupportChild, E.name, E.family, E.no AS EmployeeNo, E.InsuranceNum, ea.BankNo, ea.BranchName, ea.PlaceNo,
ea.AccountNo, ea.IsDefult, EN.Name AS bankname, E.ITINo, ES.Year, ES.Month, E.SupportEtc AS Supportetc, ED.[Group], E.IsRetired AS isretired, ED.PostNo,
(SELECT Value
FROM [TOP].dbo.EntityContact
WHERE (EntityNo = E.no) AND (ContactTypeNo = 9)) AS ContactValue, ED.No AS EmployeeDocNo, ES.No AS EmployeeSalaryNo, P.Name AS post,
E.haveinsure
FROM [TOP].dbo.Employee AS E LEFT OUTER JOIN
EmpDoc AS ED ON ED.EmployeeNo = E.no LEFT OUTER JOIN
EmpAccount AS ea ON ea.EmployeeNo = E.no LEFT OUTER JOIN
[TOP].dbo.Entity AS EN ON ea.BankNo = EN.No LEFT OUTER JOIN
EmployeeSalary AS ES ON ES.EmployeeNo = E.no LEFT OUTER JOIN
[TOP].dbo.PublicRole AS P LEFT OUTER JOIN
[TOP].dbo.Entity AS Ent ON P.No = Ent.No ON P.No = ED.OrgPersonNo
WHERE (E.no = 1001000000000001231) AND (ED.No IN
(SELECT MAX(No) AS MNo
FROM EmpDoc
WHERE (DateBeginDoc <= '1391/07/15') AND (IsOk = 1)
GROUP BY EmployeeNo)) AND (ES.Year = '1391') AND (ES.Month = '07')
ORDER BY EmployeeDocNo DESC, ES.Year DESC, ES.Month DESC
كوئري بالا در سرور شماره 1 به سرعت و ظرف كمتر از 2 ثانيه اجرا مي شه اما در سرور شماره 2 به طرز غير قابل باوري 20 ثانيه طول مي كشه تا جواب رو ارئه بده.
هر دو سرور كوئري رو بدون خطا اجرا مي كنن و نتيجه هر دو يكسان هست ، تفاوت تنها در سرعت اجراي اين دو كوئري است. بررسي كردم و مطمئن هستم سرور يك به هيچ عنوان نتيجه كوئري رو ايندكس نكرده.
بانك ها رو بارها ريستور كردم ، هر دو سرور تمام كوئري ها رو به درستي اجرا مي كنن و سرور شماره 2 هر كوئري غير از كوئري بالا رو با سرعت بسيار بالاتري نسبت به سرور 1 اجرا مي كنه اما در مورد اين كوئري خاص به طرز عجيبي كند عمل مي كنه!
حالا نظر شما چيه؟