با سلام و تشکر از دوره بسیار خوبتون
چطور میشه طوری دیتا بیس رو تنظیم کرد که در صورتی که حجم جدول یا دیتا بیس به مقدار مشخصی برسه جدول جدید یا دیتا بیس جدید ایجاد بشه وادامه کار در جدول یا دیتا بیس جدید انجام بشه
یا بر اساس زمان باشه مثلا روزانه
ممنون
سلام دوست من
خیلی از نظرتون ممنونم
باید کوئری براش نوشت مشابه موردی که فرمودید رو کوئری شو براتون میذارم ساختار شو تغییر بدید
و ازش استفاده کنید
-- 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
ممنون استاد عزیز
اگه بخواهیم به صورت زمانی باشه چه باید کرد مثلا روزانه
.سوال دوم اینکه بنظر شما بهتر است با افزایش حجم جدول جدید ساخته بشه یا دیتا بیس جدید
ممنون
سلامت باشید دوست من
برای اینکه با زمان بندی اجرا بشه Job براش تعریف کنید و بنظرم یک دیتابیس جدید با جدول جدید براش تعریف کنید روی یک درایو دیگه موارد جدید رو قرار بدید
سلام استاد عزیز
من کد بالا رو استفاده کردم ولی زمانی که دیتا بیس جدید ساخته میشه نمی تونم داخلش جدول ایجاد کنم و مشکل اینجاست که دیتا بیس دیفالت دیتا بیس قبلی هست و در دیتابیس جدید رو نتونستم به صورت دیفالت در بیارم چون اسم اونو ندارم وقتی اسم اونو در یک متغیر میریزم نمیشه اونو در query استفاده کرد
ممنون میم راهنمایی بفرمایید
سلام دوست من
پس یک جدول جدید ایجاد کنید و اون رو در یک FileGroup قرار بدید و در یک مسیر مشخص شده ایجاد کنید
وقت بخیر استاد
ایا امکان این هست در sql server یک ارایه بزرگ رو مثلا با 10000 ایتم تنها با یک insert هر ایتم ارایه رو در یک سطر جدول وارد کرد (بدون حلقه تکرار )
ممنون
وقت شما هم بخیر دوست من
از این لینک استفاده کنید
اطلاعات مورد نظر در باره Object های SQL Server رو براتون مشخص کرده
روز بخیر استاد
ممنون از اینکه وقت میزارید جهت پاسخ به سوالات
یه مشکل برخوردم
یک دیتابیس دارم که جدولی با حدود 86 میلیون رکورد داره حالا زمانی که جدول رو فشرده سازی میکنم حجم دیتابیس روی هارد بجای کم شدن بیشتر میشه
جالب اونجاست که وقتی فشرده سازی رو برمیگردونم به حالت قبل یعنی حذف میکنم باز حجم بیشتر میشه
ممنون میشم راهنمایی بفرمایید
سلام دوست من
چون بخاطر لاگ هایی هست که داره ایجاد می کنه
به این دلیله داره افزایش پیدا می کنه
سلام استاد
فایل لاگ که جداست و حجم خودشو داره
حجم فایل دیتا چرا زیاد میشه ؟
جالب این جاست فقط با یک بار فشرده سازی هم حجم بیشتر شده
با توجه به این پس فشرده سازی چه سودی داره
دقیقا برعکس عمل میکنه
باید بررسی بشه بصورت دقیق مشخص نمیشه مشکل از کجا هست