یکی دیگر از معایب کوئریهای select * در SQL server این است که تغییرات حاصل در فیلدهای جداول یک بانک اطلاعاتی را در view های ساخته شده از این نوع کوئریها منعکس نمیکند.برای مثال جدول tblTreeItems را با سه فیلد id ، parent و title در نظر بگیرید. فرض کنید بر این اساس view زیر را ساختهایم:CREATE VIEW GetDataasSELECT * FROM tblTreeItemsاکنون به جدول فوق ، فیلد جدید isActive را اضافه میکنیم. پس از این عملیات اگر کوئری ساده SELECT * FROM GetD ...
با بالا رفتن تعداد اشیاء تعریف شده در SQL server ، نگهداری آنها نیز مشکلتر میشود. در این حالت تغییر کوچکی در یکی از اشیاء ممکن است باعث از کار افتادن قسمتی از سیستم شود. بنابراین قبل از هر گونه تغییری در یک شیء، ابتدا باید سایر اشیاء وابسته به آن را یافت و در نظر داشت ( dependencies ). برای این منظور ( impact analysis ) راهکارهای مختلفی در SQL server وجود دارد که در ادامه به آنها خواهیم پرداخت:الف) استفاده از امکانات management studio ...
با تکامل SQL server و بهبودهای حاصل شده، یک سری از ویژگیهای موجود صرفا جهت حفظ سازگاری با نگارشهای قبلی ارائه میشوند. لیست کامل آنها را در آدرس زیر میتوان مشاهده نمود:Deprecated Database Engine Features in SQL Server 2008لیست بلند بالایی است. اما در یک محیط کاری، نوعهای زیر از سایر موارد ذکر شده بیشتر مورد استفاده قرار میگیرند:منسوخ شدهها: text ، ntext و image . جایگزینها : varchar ، nvarchar و varbinary از نوع max دارعموما علت است ...
عموما اولین پاسخی که به این سؤال داده میشود این است که این نوع کوئریها اطلاعات زیادی را باز میگردانند و در نتیجه ترافیک شبکه بیجهت افزایش خواهد یافت. اما اگر طراحی دیتابیس صحیح بوده و اصول نرمال سازی در آن پیاده سازی شده باشد، این پاسخ آنچنان صادق نخواهد بود (زیرا جداول اینگونه دیتابیسها از تعداد فیلدهای بسیاری تشکیل نخواهند شد). برای مثال به نتیجه اجرای کوئریهای زیر بر روی دیتابیس AdventureWorks با 89 هزار رکورد، دقت بفرمائید:SELECT ...
با آمدن SQL server 2008 استفاده از کتابخانه SQL-DMO برای انجام یک سری از امور بر روی اس کیوال سرور با استفاده از برنامه نویسی منسوخ شد. یکی از تواناییهای این کتابخانه لیست کردن سرورهای اس کیوال (قابل دسترسی) موجود در شبکه بود.برای مثال توسط این کتابخانه به صورت زیر میتوان اینکار را انجام داد:در قطعه کد زیر فرض بر این است که ارجاعی به کتابخانه sqldmo را در برگه com مربوط به project->add reference اضافه کردهاید: using SQLDMO; using Sy ...
در مطالب قبلی به اختصار در مورد dynamic management views که از SQL server 2005 به بعد ارائه شدهاند مثالهایی کاربردی ارائه گشتند. یکی دیگر از قابلیتهای فوق العاده مهم این DMV ها، پیشنهاد ایجاد ایندکس بر روی جداول است. این پیشنهادات بر اساس آمارهای جمع آوری شده توسط موتور بهینه ساز اجرای کوئریها در اس کیوال سرور به شما ارائه خواهند شد. برای مثال کوئری زیر را در management studio اجر نمائید:USE master; SELECT d.database_id, d.object_ ...
چند روز قبل مشکلی رخ داده بود به این شرح!سروری کهSQL server بر روی آن نصب بود بخاطر SQL server ، بیش از 50 درصد CPU usage مداوم پیدا کرده بود. عموما مصرف CPU اس کیوال سرور روی سرورهای قوی بالا نیست و تداوم این حالت به این شدت یعنی بروز مشکل.اینجا است که این سؤال پیش میاد، SQL Server الان داره چکار میکنه که تا این حد به صورت مداوم مصرف CPU آن بالا رفته؟ (حدودا 2 ساعت تمام به صورت مداوم مصرف CPU بالای 50 درصد بود)با استفاده از کوئری زیر می ...
آیا میدانید آخرین باری که از یک دیتابیس مفروض بکآپ گرفته شده، چه زمانی بوده است؟ (یا اینکه اصلا چه اهمیتی داره؟!)USE master;SELECT B.name AS Database_Name, ISNULL(STR(ABS(DATEDIFF(day, GetDate(), MAX(Backup_finish_date)))), 'NEVER') AS DaysSinceLastBackup, ISNULL(CONVERT(char(10), MAX(backup_finish_date), 101), 'NEVER') AS LastBackupDateFROM master.dbo.sysdatabases BLEFT OUTER JOIN msdb.dbo.backupset AON A.database_name = B ...
نمیدونم تابحال به صورت جدی با SharePoint مایکروسافت کار کردید یا نه؟ این برنامه که عمده کارهای خودش رو با SQL server انجام میده در طول یک روز ممکن است تا 80 گیگ log file اسکیوال سرور تولید کند و بعد از چند روز اگر به همین صورت به حال خود رها شود (که عموما هم به همین صورت است!) ممکن است دیگر قادر به استفاده از سرور به دلیل پر شدن درایوی که لاگ فایلها در آن ذخیره میشوند نباشید.همچنین رشد tempdb نیز توسط این برنامه بسیار چشمگیر است. بناب ...