• 1403/01/28

حجم و زمان پارتیشن بندی :

با سلام و تشکر از دوره بسیار خوبتون
چطور میشه طوری دیتا بیس رو تنظیم کرد که در صورتی که حجم جدول یا دیتا بیس  به مقدار مشخصی برسه جدول جدید یا دیتا بیس جدید ایجاد بشه وادامه کار در جدول یا دیتا بیس جدید انجام بشه 

یا بر اساس زمان باشه مثلا روزانه 

 

ممنون

  • 1403/01/28
  • ساعت 14:27

سلام دوست من 
خیلی از نظرتون ممنونم 
باید کوئری براش نوشت  مشابه موردی که فرمودید رو کوئری شو براتون میذارم ساختار شو تغییر بدید 

و ازش استفاده کنید 

 

-- Variables to hold names and size threshold

DECLARE @CurrentDBSizeMB INT;

DECLARE @SizeThresholdMB INT = 50000; -- Example size threshold in MB

DECLARE @NewDBName NVARCHAR(128);

DECLARE @SQL NVARCHAR(MAX);

 

-- Get the size of the current database

SELECT @CurrentDBSizeMB = SUM(size) * 8 / 1024

FROM sys.master_files

WHERE database_id = DB_ID(N'YourCurrentDatabaseName');

 

-- Check if the current database size exceeds the threshold

IF @CurrentDBSizeMB > @SizeThresholdMB

BEGIN

-- Generate a new database name based on the current date and time

SET @NewDBName = N'NewDatabase_' + REPLACE(CONVERT(NVARCHAR(20), GETDATE(), 120), ' ', '_') + '_' + REPLACE(CONVERT(NVARCHAR(20), GETDATE(), 108), ':', '');

 

-- Create the new database with the generated name

SET @SQL = N'CREATE DATABASE ' + QUOTENAME(@NewDBName);

EXEC sp_executesql @SQL;

 

-- Add additional logic here to configure the new database

-- For example, create tables, apply schema, set up users/permissions, etc.

 

-- Redirect application to use the new database

-- This step will depend on your application's architecture

-- You might update a configuration table, file, or environment variable

END

 


  • 1403/01/29
  • ساعت 08:47

ممنون استاد عزیز 

اگه بخواهیم به صورت زمانی باشه چه باید کرد   مثلا روزانه 

.سوال دوم اینکه بنظر شما بهتر است با افزایش حجم جدول جدید ساخته بشه  یا دیتا بیس جدید 

 

ممنون


  • 1403/01/29
  • ساعت 09:23

سلامت باشید دوست من 

برای اینکه با زمان بندی اجرا بشه Job براش تعریف کنید و بنظرم یک دیتابیس جدید با جدول جدید براش تعریف کنید  روی یک درایو دیگه  موارد جدید رو قرار بدید


  • 1403/01/29
  • ساعت 18:04

سلام استاد عزیز 

من کد بالا رو استفاده کردم ولی زمانی که دیتا بیس جدید ساخته میشه نمی تونم داخلش جدول ایجاد کنم و مشکل اینجاست که دیتا بیس دیفالت دیتا بیس قبلی هست و در دیتابیس جدید رو نتونستم  به صورت دیفالت در بیارم چون اسم اونو ندارم وقتی اسم اونو در یک متغیر میریزم نمیشه اونو در query استفاده کرد 

ممنون میم راهنمایی بفرمایید


  • 1403/01/29
  • ساعت 20:17

سلام دوست من 

پس یک جدول جدید ایجاد کنید و اون رو در یک FileGroup قرار بدید و در یک مسیر مشخص شده ایجاد کنید 

 


  • 1403/01/31
  • ساعت 21:19

وقت بخیر استاد 

ایا امکان این هست در sql server  یک ارایه بزرگ  رو مثلا با 10000 ایتم    تنها با یک insert  هر ایتم ارایه رو در یک سطر جدول وارد کرد (بدون حلقه تکرار ) 

ممنون


  • 1403/02/01
  • ساعت 08:46

وقت شما هم بخیر دوست من 

از این لینک استفاده کنید 

اطلاعات مورد نظر در باره Object های SQL Server رو براتون مشخص کرده 

https://learn.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-server-ver16


  • 1403/02/03
  • ساعت 14:42

روز بخیر استاد 

ممنون از اینکه وقت میزارید جهت پاسخ به سوالات 

یه مشکل برخوردم 

یک دیتابیس دارم که جدولی با حدود 86 میلیون رکورد داره حالا زمانی که جدول رو فشرده سازی میکنم حجم دیتابیس روی هارد بجای کم شدن بیشتر میشه 

جالب اونجاست که وقتی فشرده سازی رو برمیگردونم به حالت قبل یعنی حذف میکنم باز حجم بیشتر میشه 

ممنون میشم راهنمایی بفرمایید 


  • 1403/02/03
  • ساعت 16:16

سلام دوست من 

چون بخاطر لاگ هایی هست که داره ایجاد می کنه 

به این دلیله داره افزایش پیدا می کنه 

 

 


  • 1403/02/03
  • ساعت 16:36

سلام استاد 

فایل لاگ که جداست و حجم خودشو داره 

حجم فایل دیتا چرا زیاد میشه ؟

جالب این جاست فقط با یک بار  فشرده سازی هم حجم بیشتر شده 

با توجه به این پس فشرده سازی چه سودی داره 

دقیقا برعکس عمل میکنه 


  • 1403/02/03
  • ساعت 18:18

باید بررسی بشه بصورت دقیق مشخص نمیشه مشکل از کجا هست 

 


logo-samandehi