در خیلی مواقع ملاحظه میشود که برای نمایش
تعدادی از رکوردهای یک جدول در پایگاه داده، کل مقادیر موجود درآن توسط یک
دستور select به دست میآید و صفحهبندی خروجی، به کنترلهای موجود سپرده
میشود. اگر پایگاه داده ما دارای تعداد زیادی رکورد باشد، آن موقع است که دچار مشکل میشویم. فرض کنید به طور همزمان ۵ نفر (که تعداد زیادی نیستند)
از برنامه ما که شامل ۱۰۰۰۰۰ سطر داده میباشد استفاده کنند و در هر صفحه، ۱۰ رکورد نمایش داده شود و صفحهبن ...
بخش دوم : Naive Trees فرض کنید یک وب سایت حرفهای خبری یا علمی-پژوهشی داریم که قابلیت دریافت نظرات کاربران را در مورد هر مطلب مندرج در سایت یا نظرات داده شده در مورد آن مطالب را دارا میباشد. یعنی هر کاربر علاوه بر توانایی اظهار نظر در مورد یک خبر یا مطلب باید بتواند پاسخ نظرات کاربران دیگر را نیز بدهد. اولین راه حلی که برای طراحی این مطلب در پایگاه داده به ذهن ما میرسد، ایجاد یک زنجیره با استفاده از کد sql زیر میباشد: CREAT ...
در این سلسله نوشتار قصد دارم ترجمه و خلاصه چندین فصل از کتاب ارزشمند ( SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers که حاصل تلاش گروه IT موسسه هدایت فرهیختگان جوان میباشد، را ارائه نمایم. بخش اول : Jaywalking در این بخش در
حال توسعه ویژگی نرم افزاری هستیم که در آن هرکاربر به عنوان یک کاربر اصلی برای
یک محصول تخصیص داده میشود. در طراحی اصلی ما فقط اجازه می دهی ...
بر اساس رفتار پیش فرض در دیتابیس SQL Server، در زمان انجام دادن یک دستور که منجر به ایجاد تغییرات در اطلاعات موجود در جدول میشود (برای مثال دستور Update)، جدول مربوطه به صورت کامل Lock میشود، ولو آن دستور Update، فقط با یکی از رکوردهای آن جدول کار داشته باشد. در سیستمهای با تعداد تراکنش بالا و دارای تعداد زیاد کلاینت، این رفتار پیش فرض موجب ایجاد صفی از تراکنشهای در حال انتظار بر روی جداولی میشود که ویرایشهای زیادی بر روی آنها ...
مقدمه
در لینکی که چندی پیش به اشتراک گذاشته بودم؛ به مطلبی تحت این عنوان اشاره شده بود: "آیا از KPI باید به انباره داده و هوش تجاری رسید؟" (بر گرفته از وبلاگ آقای جام سحر) که در آن به موانع پیش روی انجام پروژههای BI در ایران پرداخته شده است.
این مقاله بر گرفته از فصل سوم یکی از White Paperهای ماکروسافت با عنوان Mi ...
پشتیبانی SQL Server از Spatial data
از SQL Server 2008 به بعد، نوع داده جدیدی به نام geography به نوعهای قابل تعریف ستونها اضافه شدهاست. در این نوع ستونها میتوان طول و عرض جغرافیایی یک نقطه را ذخیره کرد و سپس به کمک توابع توکاری از آنها کوئری گرفت.
در اینجا نمونهای از نحوهی تعریف و همچنین مقدار دهی این نوع ستونها را مشاهده میکنید: CREATE TABLE [Geo](
[id] [int] IDENTITY(1,1) NOT NULL,
[Lo ...
Buffer Pool یکی از مصرف کنندگان اصلی حافظه در SQL Server است. برای مثال زمانیکه اطلاعاتی را از بانک اطلاعاتی دریافت میکنید، این دادهها در Buffer Pool کش میشوند. همچنین SQL Server اطلاعات کلیه Execution Plans را نیز در Plan Cache که جزئی از Buffer Pool است، برای استفادهی مجدد نگهداری میکند. هر چقدر حافظهی فیزیکی سرور شما بیشتر باشد، مقدار Buffer Pool نیز به همین میزان افزایش خواهد یافت که البته حداکثر آنرا میتوان در تنظیمات حافظهی ...
به صورت پیش فرض SQL Server از روش write-ahead log - WAL استفاده میکند. به این معنا که کلیه تغییرات، پیش از commit نهایی باید در لاگ فایل آن نوشته شوند. این مساله با تعداد بالای تراکنشها تا حدودی بر روی سرعت سیستم میتواند تاثیرگذار باشد. برای بهبود این وضعیت، در SQL Server 2014 قابلیتی به نام delayed_durability اضافه شدهاست که با فعال سازی آن، کلیه اعمال مرتبط با لاگهای تراکنشها به صورت غیرهمزمان انجام میشوند. به این ترتیب تراکنشها ...
در SQL Server 2014، به Management studio آن ابزارهای جدیدی اضافه شدهاند تا کار تبدیل و مهاجرت جداول معمولی، به جداول بهینه سازی شدهی برای حافظه را سادهتر کنند. برای مثال امکان جدیدی به نام Transaction performance collector جهت بررسی کارآیی تراکنشهای جداول و یا رویههای ذخیره شده در محیط کاری جاری، طراحی شدهاست. پس از آن، این اطلاعات را آنالیز کرده و بر اساس میزان استفاده از آنها، توصیههایی را در مورد مهاجرت یا عدم نیاز به مهاجرت به ...