در این روزهای پرتنش که حملات سایبری هم شدت گرفته، یکی از حملاتی که بیشتر از همیشه باید جدی گرفته بشه، SQL Injection هست.
این نوع حمله میتونه آسیبهای جبرانناپذیری به دیتابیس وارد کنه:
از حذف دادهها گرفته تا رمزنگاری یا دستکاری اطلاعات، و متأسفانه چون حمله از طریق اکانتی انجام میشه که نرمافزار به دیتابیس متصل شده، دسترسی کامل به اطلاعات فراهم میشه.
چند سوال کلیدی که باید از خودمون بپرسیم:
🔐 اینها تنها بخشی از سوالاتی هستند که باید در روزهای پرریسک امروز بهشون فکر کنیم.
برای تصمیم گیری در مورد نسخه SQL Server مناسب برای برنامهی خود، باید به عوامل زیر توجه کنید:
تعداد همزمان کاربران: اگر برنامهی شما توسط تعداد زیادی همزمان کاربر استفاده میشود، نسخه SQL Server Express ممکن است محدودیتهای کاربران همزمان داشته باشد. در این مورد، احتمالاً نیاز به نسخههای پیشرفتهتر SQL Server مانند Standard یا Enterprise دارید.
حجم دادهها: برنامه شما به نظر میآید که دادههای معمولی داشته باشد. اما تعداد روزانه فاکتورها و حجم دادهها میتواند افزایش یابد. اگر حجم دادهها به سرعت افزایش پیدا میکند، نسخه Express ممکن است به زودی به محدودیت حجم داده برخورد کند. در این صورت، نسخههای Standard یا Enterprise با قابلیتهای مدیریت داده بزرگتر مناسبتر هستند.
Attach و Detach در SQL Server دو عمل پرکاربرد در مدیریت دیتابیس هستند که به ترتیب، امکان افزودن داده به دیتابیسهای مختلف یا حذف داده از آنها را به کاربران میدهند. در این مقاله قصد داریم با این دو عملیات در SQL Server بیشتر آشنا شویم و روش اجرای هرکدام را به تفکیک بررسی کنیم. همچنین به استفادههای متداول از این دو عمل و تفاوت بین آنها میپردازیم. اگر میخواهید دو عمل حذف و اضافه دادهها را در SQL Server بهسادگی انجام دهید، مطالعه این مقاله را از دست ندهید.
ادامه نوشتهبرای تصمیم گیری در مورد نسخه SQL Server مناسب برای برنامهی خود، باید به عوامل زیر توجه کنید:
تعداد همزمان کاربران: اگر برنامهی شما توسط تعداد زیادی همزمان کاربر استفاده میشود، نسخه SQL Server Express ممکن است محدودیتهای کاربران همزمان داشته باشد. در این مورد، احتمالاً نیاز به نسخههای پیشرفتهتر SQL Server مانند Standard یا Enterprise دارید.
حجم دادهها: برنامه شما به نظر میآید که دادههای معمولی داشته باشد. اما تعداد روزانه فاکتورها و حجم دادهها میتواند افزایش یابد. اگر حجم دادهها به سرعت افزایش پیدا میکند، نسخه Express ممکن است به زودی به محدودیت حجم داده برخورد کند. در این صورت، نسخههای Standard یا Enterprise با قابلیتهای مدیریت داده بزرگتر مناسبتر هستند.
DECLARE @MyTable TABLE(Enters TIME(0), LeftTime TIME(0));
INSERT @MyTable VALUES('07:00:00', '15:45:00')
SELECT *, FORMAT(CAST(DATEDIFF(HOUR, Enters, LeftTime) AS int),'00')+':'+FORMAT(CAST(DATEDIFF(MINUTE, Enters, LeftTime)% 60 AS INT),'00') AS JobTime FROM @MyTable;

چنانچه سرویس SQL را در MS SQL server ریست نمایید، VALUE (مقدار)هایی که Identity SPECIFICATION آنها برابر YES باشد جهش پیدا میکنند. این افزایش مقدار، از نقطه نظر برنامه نویسی، به خصوص در زمانی که قصد نمایش دادهها به کاربر وجود دارد، قابل قبول نیست.
برای رفع این مشکل SQL SERVER CONFIGURATION MANAGER را باز کنید، از سمت چپ پنجره بر روی عبارت SQL services کلیک نمایید، از سمت راست همان پنجره بر روی عبارت «(SQL Server (MSSQLSERVER» کلیک راست کنید، سپس بر روی گزینهی Properties کلیک کنید تا پنجره آن باز شود.
در بخش Startup Parameters مقدار –t272 را اضافه نمایید.
در SQL Server بانکهای اطلاعاتی میتوانند وضعیتهای مختلفی داشته باشند ما در این مقاله سعی خواهیم کرد وضعیت بانکهای اطلاعاتی را بررسی کنیم. برای مشاهده وضعیت بانکهای اطلاعاتی میتوانید از روشهای زیر استفاده کنید.
اگر در SSMS کلید F8 را فشار دهید Object Explorer برای شما نمایش داده میشود. شما میتوانید اغلب وضعیتهای مربوط به بانک اطلاعاتی را در آن مشاهده کنید.

ادامه نوشته
بدون تردید، execution plan یکی از مهمترین ابزارهای داخلی sql server در جهت کشف مشکلات کارایی و کندی سرعت اجرای کوئری ها است. برای هر فرد برنامه نویس و ادمین دیتابیس، آشنایی با execution plan از مهارت های کاربردی می باشد. اگر بخواهیم بطور خلاصه کاربرد execution plan را بدانیم، مواقعی که سرعت اجرای یک کوئری قابل قبول نیست و در اصطلاح، کوئری کند اجرا می شود، قبل از اینکه به زیاد بودن تعداد رکوردهای جدول و یا ضعیف بودن منابع سرور شک کنیم و دلیل اجرای کند و زیاد بودن میزان I/O یک کوئری رو با حدس و گمان برطرف کنیم، بهترین روش این است که از execution plan کمک بگیریم و دقیقا قسمتی از کوئری که باعث ایجاد مشکل شده رو کشف و حل نماییم.
مطالبی که در این آموزش مطالعه خواهید کرد به عنوان یک پیش نیاز برای تعداد زیادی از آموزش های آتی در زمینه بهینه سازی کوئری ها (performance tuning) و همچنین آموزش هایی مانند معرفی عملگرها، نحوه خواندن execution plan و ... خواهد بود. در ادامه ابتدا بصورت مفهومی با execution plan آشنا خواهیم شد و تعدادی از مهمترین کاربردهای آن را اشاره می کنیم.