سلام و عرض ادب خدمت دوستان عزیزم
امیدوارم حال همه شما خوب و خوش باشه .
یکی از موارد مهمی که برای اکثر شرکتهای نرم افزاری پیش میاد ، نحوه بروز رسانی دیتابیس های مشتری ، پیدا کردن تفاوت های بین دیتابیس های مشتری ، نحوه توسعه Database ، و این دست موارد هست.
در این پست میخواهم در خصوص Database Project به شما توضیح بدم.
این ابزار ابتدا توسط مجموعه SSDT Tools توسط مایکروسافت در نسخه 2013 ارائه می شد و از نسخه 2015 به بعد به صورت Builtin درون خود Project های VS قرار داره. وقتی شما در VS از منوی File-new رو انتخاب می کنید یک گزینه ای به نام SQL Server projects داره که داخلش Database Project قرار داره.
حالا چه مزایایی داره؟
1- توسعه دیتابیس بسیار سریع
2- امکان Refactor کردن آبجکت های دیتابیس ، تغییر نام ، و... و اعمال در تمام آبجکتهای وابسته بدون اینکه نگران باشید جایی شاید ممکنه تغییرات شما اعمال نشده باشه.
3- امکان نوشتن Unit Test برای SP,View,Function
4- دارای Intellisense بسیار قدرتمند
5- امکان Compare کردن دیتابیس با دیتابیس محیط Production و بدست آوردن اختلافات بین دو دیتابیس
6- قابلیت اضافه شدن بسیار راحت به TFS
7- امکان Publish کردن دیتابیس و طراحی Automation build
8- امکان Publish بر روی محیط تست و اجرای تست ها بر روی محیط Test و در صورت درست بودن آن ، Publish بر روی محیط عملیاتی
9- اضافه کردن دیتابیس با استفاده از Import دیتابیس فعلی
و ایضا تمام قابلیتهایی که محصولات Red gate در اختیار شما قرار میدن به راحتی با Database Project و در یک مجموعه دراختیار خواهید داشت
نحوه کار با آن بسیار راحت هست و شما دیگه از سردرگمی در خصوص توسعه دیتابیس رهایی پیدا خواهید کرد.
سعی میکنم در پست بعدی یک فیلم از نحوه کار با این ابزار رو برای شما عزیزان فراهم کنم.
ارادتمند شما
حمیدرضا صادقیان
ID:@Hamidreza_Sadeghian
Channel :@SQL_Server
#DBA #Database_Project #Manage_Database #Database_Compare #Compare #publish #publish_Database #صادقيان #AutomationDeploy #DevOps
امیدوارم حال همه شما خوب و خوش باشه .
یکی از موارد مهمی که برای اکثر شرکتهای نرم افزاری پیش میاد ، نحوه بروز رسانی دیتابیس های مشتری ، پیدا کردن تفاوت های بین دیتابیس های مشتری ، نحوه توسعه Database ، و این دست موارد هست.
در این پست میخواهم در خصوص Database Project به شما توضیح بدم.
این ابزار ابتدا توسط مجموعه SSDT Tools توسط مایکروسافت در نسخه 2013 ارائه می شد و از نسخه 2015 به بعد به صورت Builtin درون خود Project های VS قرار داره. وقتی شما در VS از منوی File-new رو انتخاب می کنید یک گزینه ای به نام SQL Server projects داره که داخلش Database Project قرار داره.
حالا چه مزایایی داره؟
1- توسعه دیتابیس بسیار سریع
2- امکان Refactor کردن آبجکت های دیتابیس ، تغییر نام ، و... و اعمال در تمام آبجکتهای وابسته بدون اینکه نگران باشید جایی شاید ممکنه تغییرات شما اعمال نشده باشه.
3- امکان نوشتن Unit Test برای SP,View,Function
4- دارای Intellisense بسیار قدرتمند
5- امکان Compare کردن دیتابیس با دیتابیس محیط Production و بدست آوردن اختلافات بین دو دیتابیس
6- قابلیت اضافه شدن بسیار راحت به TFS
7- امکان Publish کردن دیتابیس و طراحی Automation build
8- امکان Publish بر روی محیط تست و اجرای تست ها بر روی محیط Test و در صورت درست بودن آن ، Publish بر روی محیط عملیاتی
9- اضافه کردن دیتابیس با استفاده از Import دیتابیس فعلی
و ایضا تمام قابلیتهایی که محصولات Red gate در اختیار شما قرار میدن به راحتی با Database Project و در یک مجموعه دراختیار خواهید داشت
نحوه کار با آن بسیار راحت هست و شما دیگه از سردرگمی در خصوص توسعه دیتابیس رهایی پیدا خواهید کرد.
سعی میکنم در پست بعدی یک فیلم از نحوه کار با این ابزار رو برای شما عزیزان فراهم کنم.
ارادتمند شما
حمیدرضا صادقیان
ID:@Hamidreza_Sadeghian
Channel :@SQL_Server
#DBA #Database_Project #Manage_Database #Database_Compare #Compare #publish #publish_Database #صادقيان #AutomationDeploy #DevOps
سلام دوستان
🚨 تا حالا شده بری Shrink File و با خودت بگی:
«اینا رو با یه SELECT نمیشه دید؟!» 🤔
خبر خوب برای DBAها و Backend Engineerها 🎉
بله… میشه! و حتی تمیزتر، سریعتر و قابل اتوماسیون 😎
🧠 مسئله چیه؟
تو SQL Server وقتی میری:
بخش Shrink Database
یا Shrink File
برای هر فایل اینا رو میبینی:
Total Size
Used Space
Free Space
اما این اطلاعات:
❌ اسکریپتپذیر نیست
❌ تو مانیتورینگ نمیاد
❌ تو گزارش DBA جایی نداره
🎯 سناریوی خیلی واقعی (احتمالاً الان داری باهاش دستوپنجه نرم میکنی 😅)
فرض کن:
روی یک سیستم تستی / Staging کار میکنی
میخوای روی یک دیتابیس خاص تغییرات سنگین بدی فضا کم آوردی 😬
اون دیتابیس هم ۱۰ تا Data File مختلف + یکی دوتا Log داره
حالا سوال مهم اینه 👇
👉 از کدوم فایل واقعاً میتونم فضا آزاد کنم؟
👉 کدوم فایل عملاً پره و Shrink روش جواب نمیده؟
اینجاست که Shrink UI دیگه کافی نیست…
و یه SELECT حسابی نجاتت میده 😏
✅ راهحل حرفهای
با کوئری زیر، دقیقاً همون چیزی که UI نشون میده رو میگیری
برای:
Data File 🗂
Log File 🧾
💎 این کوئری دقیقاً کجاها میدرخشه؟
✨ وقتی روی Test / QA / Staging فضا کم آوردی
✨ وقتی دیتابیس چندین فایل داره و تصمیمگیری سخته
✨ برای اینکه بدونی کدوم فایل ارزش Shrink داره
✨ قبل از Extend کردن دیسک (که همیشه هم در دسترس نیست 😐)
✨ توی Monitoring Dashboard
✨ برای Capacity Planning واقعی، نه حدسی
👥 این کد به درد کی میخوره؟
👨💻دوستان DBAها (Junior تا Senior)
👨💻همچنین Backend Engineerهایی که SQL Server دارن
🏢 تیمهای DevOps و Infra
📊 برای داشبوردهای Monitoring
⚠️ یادآوری دوستانه DBAطور
🔴اول اینکه Free Space ≠ Space قابل Shrink
🔴و Shrink مُسکنه، نه درمان
🔴 اول علت رشد فایل رو بفهم، بعد تصمیم بگیر
hashtag#SQLServer hashtag#DBA hashtag#Monitoring hashtag#CapacityPlanning hashtag#TSQL hashtag#DevOps hashtag#DataEngineering 🚀
🚨 تا حالا شده بری Shrink File و با خودت بگی:
«اینا رو با یه SELECT نمیشه دید؟!» 🤔
خبر خوب برای DBAها و Backend Engineerها 🎉
بله… میشه! و حتی تمیزتر، سریعتر و قابل اتوماسیون 😎
🧠 مسئله چیه؟
تو SQL Server وقتی میری:
بخش Shrink Database
یا Shrink File
برای هر فایل اینا رو میبینی:
Total Size
Used Space
Free Space
اما این اطلاعات:
❌ اسکریپتپذیر نیست
❌ تو مانیتورینگ نمیاد
❌ تو گزارش DBA جایی نداره
🎯 سناریوی خیلی واقعی (احتمالاً الان داری باهاش دستوپنجه نرم میکنی 😅)
فرض کن:
روی یک سیستم تستی / Staging کار میکنی
میخوای روی یک دیتابیس خاص تغییرات سنگین بدی فضا کم آوردی 😬
اون دیتابیس هم ۱۰ تا Data File مختلف + یکی دوتا Log داره
حالا سوال مهم اینه 👇
👉 از کدوم فایل واقعاً میتونم فضا آزاد کنم؟
👉 کدوم فایل عملاً پره و Shrink روش جواب نمیده؟
اینجاست که Shrink UI دیگه کافی نیست…
و یه SELECT حسابی نجاتت میده 😏
✅ راهحل حرفهای
با کوئری زیر، دقیقاً همون چیزی که UI نشون میده رو میگیری
برای:
Data File 🗂
Log File 🧾
SELECT
df.name,
df.type_desc,
df.physical_name,
df.size / 128.0 AS TotalSizeMB,
CASE
WHEN df.type = 1
THEN ls.used_log_space_in_bytes / 1024 / 1024
ELSE FILEPROPERTY(df.name, 'SpaceUsed') / 128.0
END AS UsedSpaceMB,
CASE
WHEN df.type = 1
THEN (df.size / 128.0) - (ls.used_log_space_in_bytes / 1024 / 1024)
ELSE (df.size - FILEPROPERTY(df.name, 'SpaceUsed')) / 128.0
END AS FreeSpaceMB
FROM sys.database_files df
OUTER APPLY sys.dm_db_log_space_usage ls;
💎 این کوئری دقیقاً کجاها میدرخشه؟
✨ وقتی روی Test / QA / Staging فضا کم آوردی
✨ وقتی دیتابیس چندین فایل داره و تصمیمگیری سخته
✨ برای اینکه بدونی کدوم فایل ارزش Shrink داره
✨ قبل از Extend کردن دیسک (که همیشه هم در دسترس نیست 😐)
✨ توی Monitoring Dashboard
✨ برای Capacity Planning واقعی، نه حدسی
👥 این کد به درد کی میخوره؟
👨💻دوستان DBAها (Junior تا Senior)
👨💻همچنین Backend Engineerهایی که SQL Server دارن
🏢 تیمهای DevOps و Infra
📊 برای داشبوردهای Monitoring
⚠️ یادآوری دوستانه DBAطور
🔴اول اینکه Free Space ≠ Space قابل Shrink
🔴و Shrink مُسکنه، نه درمان
🔴 اول علت رشد فایل رو بفهم، بعد تصمیم بگیر
hashtag#SQLServer hashtag#DBA hashtag#Monitoring hashtag#CapacityPlanning hashtag#TSQL hashtag#DevOps hashtag#DataEngineering 🚀
❤19👍1