অনুমান করা ডাটাবেসের বৃদ্ধি


10

আমি সম্প্রতি ডিবিএ প্রশিক্ষণার্থী হিসাবে এসকিউএল সার্ভার ২০০৮ এর সাথে কাজ শুরু করেছি। আমার ডাটাবেসের আকার নির্ধারণ করতে হবে তবে সাম্প্রতিক মাসগুলিতে এর বৃদ্ধি এবং পরবর্তী 12 মাসের জন্য পূর্বাভাসের বৃদ্ধিও অনুমান করতে পারি।

আমি আসল আকার গণনা করতে sp_spaceised বিবৃতি ব্যবহার করতে পারি তবে আমি কীভাবে অন্য সব কিছু গণনা করব?

উত্তর:


21

অন্যান্য উত্তরগুলি প্রযুক্তিগতভাবে সঠিক, তবে বাস্তব-বিশ্বের সঠিক নয়। আপনার ব্যবসায়টি যা জিজ্ঞাসা করতে হবে তা এখানে:

আমি কোন সময়ের দিগন্তের জন্য লক্ষ্য করছি? আপনার ক্ষেত্রে, আপনি 12-মাসের নম্বরটি সন্ধান করছেন।

সেই সময়ের মধ্যে, আমরা কী ডেটা সংরক্ষণাগার স্থাপন করব, বা সমস্ত ডেটা রাখব? কিছু ব্যবসায়ের ক্ষেত্রে আপনাকে গত 12 মাসের মতো নির্দিষ্ট পরিমাণের ডেটা রাখার (বা প্রয়োজনীয়) অনুমতি দেওয়া হয়। সেক্ষেত্রে আপনাকে ডেটা বৃদ্ধি (যা পরবর্তী প্রশ্নগুলি উত্তর দেবে) বের করতে হবে তবে তার পরে 12 মাস শেষ হবে ling আপনি কেবল এটি বলতে পারবেন না, "এখনই সেই পরিমাণের পরিমাণটি 100 গিগাবাইট", কারণ যদি আপনার ডেটা ভলিউমটি বাড়ছে, তবে গত 12 মাসও বাড়ছে। সময় পরিমাণ স্থির হতে পারে, কিন্তু তথ্য না।

আমরা কি অতিরিক্ত ব্যবহারকারী যুক্ত করব? উদাহরণস্বরূপ, ব্যবসাটি নতুন অঞ্চলগুলিতে বৃদ্ধি পাচ্ছে বা নতুন গ্রাহক অর্জন করবে। যদি তারা ব্যবহারকারীর বেস দ্বিগুণ হয়, তবে কিছু ক্ষেত্রে ডেটা দ্বিগুণ হওয়ার পাশাপাশি শুরু হবে।

আমরা কি ব্যবসায়ের পরিমাণ বাড়ার আশা করি? উদাহরণস্বরূপ, আপনি যদি কোনও ওয়েবসাইটে বিক্রয়গুলি ট্র্যাক করে থাকেন এবং আপনি সুপার বাটি বা বিশ্বকাপের বিজ্ঞাপনগুলি চালানো শুরু করেন তবে আপনার ডেটা ভলিউম হকি স্টিকের বৃদ্ধির বক্ররেখায় আঘাত হানতে পারে।

আমরা কি অ্যাপটিতে অতিরিক্ত কার্যকারিতা যুক্ত করব? যদি অ্যাপটি হঠাৎ করে চিত্রগুলি সঞ্চয় করতে শুরু করে, এটি নাটকীয়ভাবে ডাটাবেসের আকারকে প্রভাবিত করবে।

আমরা কি অন্য উত্স থেকে ডেটা যুক্ত করব, বা নতুন ডেটা লগ করব? যদি আপনি অতিরিক্ত উত্স যোগ করে ওয়েব সাইট ক্লিকগুলি বা কোনও ডেটা গুদামে ক্যাপচার শুরু করেন তবে ডেটা ভলিউম বৃদ্ধি পাবে।

বিকাশকারী বা ডিবিএগুলি কি পারফরম্যান্স টিউনিং সূচকগুলি করবে? যদি আপনি লোককে সূচক তৈরি করতে চলেছেন তবে তারা কীভাবে অত্যধিক .র্ষান্বিত হন তার উপর নির্ভর করে আপনি সহজেই আপনার ডেটার আকার দ্বিগুণ করতে পারেন (বা ট্রিপল, বা চতুর্থাংশ)।

এবং যতক্ষণ আপনি এই প্রশ্নগুলি জিজ্ঞাসা করছেন ততক্ষণ আপনারও জিজ্ঞাসা করা উচিত যে কর্মক্ষমতা একই রকম থাকবে, অবনমিত হবে বা আরও ভাল হবে get আমি লাইন চার্টে অনুমানিত বৃদ্ধির মানচিত্র তৈরি করতে এবং তারপরে একই সময়রেখায় হার্ডওয়্যার এবং কর্মীদের প্রশিক্ষণের বিনিয়োগের তুলনা করতে চাই।


7
সুতরাং, এটি P!?!?!
ম্যাক্স ভার্নন 21

3
হ্যাঁ, লোকেরা ডাটাবেসে কী রাখে তার উপর নির্ভর করে।
ব্রেন্ট ওজার

14

পূর্ববর্তী বৃদ্ধির ইতিহাস ছাড়া আপনি ভবিষ্যতের বৃদ্ধিকে সঠিকভাবে প্রজেক্ট করতে পারবেন না। ব্যাকআপ থেকে ট্রেন্ডিং ডেটাবেস গ্রোথ-এ এরিন স্টেলাটো দ্বারা বিস্তারিত হিসাবে, আপনি ব্যাকআপ ইতিহাস ব্যবহার করে কোনও প্রবণতা পেতে পারেন এবং পেতে পারেন ।

এক্সেলের মধ্যে নিম্নলিখিত ক্যোয়ারির আউটপুট প্লট করুন:

SELECT
    [Database] = [database_name]
    , [Month] = DATEPART(month,[backup_start_date])
    , [Backup Size MB] = AVG([backup_size]/1024/1024)
    , [Compressed Backup Size MB] = AVG([compressed_backup_size]/1024/1024)
    , [Compression Ratio] = AVG([backup_size]/[compressed_backup_size])
FROM 
    msdb.dbo.backupset
WHERE 
    [database_name] = N'YourDatabaseName'
AND [type] = 'D'
GROUP BY 
    [database_name]
    , DATEPART(mm, [backup_start_date]);

আমি এটি নিয়মিত ব্যবহার করি, তারপরে ক্লায়েন্ট সার্ভারে যদি এমন অনেক ইতিহাস থাকে তবে বছর বর্ষে এটি পরিবর্তন করুন। কোনও সার্ভারের জন্য এই জাতীয় ডেটা দেখে ভাল লাগছে।

আমি এটিকে @ ব্রেন্টওজার [এখান থেকে ব্যাকআপ স্ক্রিপ্ট]) ব্রেন্টোজার . com/archive/2012/03/… ) এর সাথে সংযুক্ত করতেও পছন্দ করি ।

1

আপনি কীভাবে ডাটাবেস সক্ষমতা পরিকল্পনা করতে পারেন তার বিভিন্ন উপায় রয়েছে।

এমএসডিবি ব্যাকআপের ইতিহাস যদি নিয়মিত ছাঁটা হয়ে যায়, বিশ্লেষণের জন্য আপনার কাছে খুব বেশি ডেটা থাকবে না

মার্ক নির্দেশিত হিসাবে, এটি এরিন দ্বারা বর্ণিত পদ্ধতিটি ব্যবহার করে করা যেতে পারে - ব্যাকআপ থেকে ডেটাবেস বৃদ্ধি।

এমনকি আপনি নীচের মত ব্যাকআপ ইতিহাস থেকে 12 মাস ধরে ডেটাবেস বৃদ্ধি পেতে পিভট ব্যবহার করতে পারেন:

DECLARE @startDate DATETIME;

SET @startDate = GetDate();

SELECT PVT.DatabaseName
    ,PVT.[0]
    ,PVT.[-1]
    ,PVT.[-2]
    ,PVT.[-3]
    ,PVT.[-4]
    ,PVT.[-5]
    ,PVT.[-6]
    ,PVT.[-7]
    ,PVT.[-8]
    ,PVT.[-9]
    ,PVT.[-10]
    ,PVT.[-11]
    ,PVT.[-12]
FROM (
    SELECT BS.database_name AS DatabaseName
        ,DATEDIFF(mm, @startDate, BS.backup_start_date) AS MonthsAgo
        ,CONVERT(NUMERIC(10, 1), AVG(BF.file_size / 1048576.0)) AS AvgSizeMB
    FROM msdb.dbo.backupset AS BS
    INNER JOIN msdb.dbo.backupfile AS BF ON BS.backup_set_id = BF.backup_set_id
    WHERE BS.database_name NOT IN (
            'master'
            ,'msdb'
            ,'model'
            ,'tempdb'
            )
        AND BS.database_name IN (
            SELECT db_name(database_id)
            FROM master.SYS.DATABASES
            WHERE state_desc = 'ONLINE'
            )
        AND BF.[file_type] = 'D'
        AND BS.backup_start_date BETWEEN DATEADD(yy, - 1, @startDate)
            AND @startDate
    GROUP BY BS.database_name
        ,DATEDIFF(mm, @startDate, BS.backup_start_date)
    ) AS BCKSTAT
PIVOT(SUM(BCKSTAT.AvgSizeMB) FOR BCKSTAT.MonthsAgo IN (
            [0]
            ,[-1]
            ,[-2]
            ,[-3]
            ,[-4]
            ,[-5]
            ,[-6]
            ,[-7]
            ,[-8]
            ,[-9]
            ,[-10]
            ,[-11]
            ,[-12]
            )) AS PVT
ORDER BY PVT.DatabaseName;

আর একটি উপায় আছে যা আপনি এসএসসি - ডেটাবেস স্পেস ক্যাপাসিটি প্ল্যানিংয়ে চ্যাড মিলার দ্বারা দুর্দান্তভাবে বর্ণিত হিসাবে সত্যিই দরকারী হিসাবে খুঁজে পেতে পারেন । তিনি days remainingখুব দরকারী যে উপর দৃষ্টি নিবদ্ধ করে ।


আমি উপরের ক্যোয়ারীটি ব্যবহার করছি এবং এটি আমাকে এসএসআইএসডিবি 11059.5 10233.6 9322.9 8338.8 7675.6 7075.1 6383.7 5592.6 4862.1 (0, -1, -2, -3 ... ইত্যাদির জন্য) এর ফলাফলটির অর্থ কী? এর অর্থ কি এমবিতে আমার সারির আকার 11059 এবং এটি পরের মাসে 10233 এমবি দ্বারা বৃদ্ধি পাবে? আমি আউটপুট নিয়ে বিভ্রান্ত হয়েছি .. আপনি কি আমাকে সহায়তা করতে পারেন
Zerotoinfinity

1

গাণিতিক গণনা জড়িত অন্যান্য পদ্ধতি আছে এবং এটি সঠিক ফলাফল দিতে পারে। আপনি ইতিমধ্যে মাইক্রোসফ্ট লিঙ্ক নীচে ডাটাবেস আকার গণনা এবং পূর্বাভাস প্রয়োজন যেহেতু ইতিমধ্যে পয়েন্টযুক্ত ব্যাকআপগুলি ডেটা বৃদ্ধি সম্পর্কে উল্লেখ করা সবচেয়ে ভাল হবে

ডাটাবেসের আনুমানিক আকার

ক্লাস্টারড ইনডেক্সের আনুমানিক আকার

গাদা অনুমান আকার

টেবিলের আনুমানিক আকার


0

আশা করি এই কোডটি সহায়তা করে:

ব্যাকআপ আকারের ইতিহাসের (এমবিতে) ভিত্তিতে কাজ করে, মাসে মাসে মিনিট এমবি, গড় এমবি, সর্বোচ্চ এমবি এবং এমবিতে অন্য মাসের পার্থক্য দেয়।

সিস্টেম ডাটাবেস ব্যতীত ব্যাকআপ সহ সমস্ত ডাটাবেস তালিকাভুক্ত করে।

-- T-SQL script - Analyses database growth using backup information (Last (12) months in that case
-- Looks only to FULL backups information
-- Parameters: Date GetDate() and nr of months to analyse

SET NOCOUNT ON
DECLARE @endDate datetime, @months smallint; 
SET @endDate = GetDate();  -- Data atual
SET @months = 12;          -- Nr. de meses a analisar

;WITH HIST AS 
   (SELECT BS.database_name AS DatabaseName 
          ,YEAR(BS.backup_start_date) * 100 
           + MONTH(BS.backup_start_date) AS YearMonth 
          ,CONVERT(numeric(10, 1), MIN(BS.backup_size / 1048576.0)) AS MinSizeMB 
          ,CONVERT(numeric(10, 1), MAX(BS.backup_size / 1048576.0)) AS MaxSizeMB 
          ,CONVERT(numeric(10, 1), AVG(BS.backup_size / 1048576.0)) AS AvgSizeMB 
    FROM msdb.dbo.backupset as BS 
    WHERE NOT BS.database_name IN 
              ('master', 'msdb', 'model', 'tempdb') 
          AND BS.type = 'D' 
          AND BS.backup_start_date BETWEEN DATEADD(mm, - @months, @endDate) AND     @endDate 
    GROUP BY BS.database_name 
            ,YEAR(BS.backup_start_date) 
            ,MONTH(BS.backup_start_date)) 
SELECT @@SERVERNAME
      ,MAIN.DatabaseName 
      ,MAIN.YearMonth 
      ,MAIN.MinSizeMB 
      ,MAIN.MaxSizeMB 
      ,MAIN.AvgSizeMB 
      ,MAIN.AvgSizeMB  
       - (SELECT TOP 1 SUB.AvgSizeMB 
          FROM HIST AS SUB 
          WHERE SUB.DatabaseName = MAIN.DatabaseName 
                AND SUB.YearMonth < MAIN.YearMonth 
          ORDER BY SUB.YearMonth DESC) AS GrowthMB 
FROM HIST AS MAIN 
ORDER BY MAIN.DatabaseName 
        ,MAIN.YearMonth

0

আমি মনে করি ব্রেন্ট ওজার পোস্ট স্পট অন। আমি একটি বিস্ময়কর ফোলা ডিবি প্রকল্পে এসেছি এবং আপনি এখানে ঠিক একই সমস্যাটি করেছেন এবং এটি এতটা সহজ নয়।

যেহেতু কমপক্ষে কিছু করা ভাল - এমনকি সত্যিকারের সঠিক না হলেও - আমি প্রয়োজনীয় টেবিলগুলি এবং একটি কাজ (বা অন্য যে কোনও পদ্ধতিতে আপনি চান, কেবল আকারগুলি জিজ্ঞাসা করার জন্য এবং এটি কোথাও নির্ভরযোগ্যতার সাথে সঞ্চয় করার জন্য) স্থাপন করব সাপ্তাহিক ভিত্তিতে ডিবি এবং এর সমস্ত টেবিলের জন্য ব্যবহৃত সারি এবং স্থান এবং এটি সম্ভবত সবচেয়ে বেশি বর্ধন বক্ররেখা প্রকল্পে ব্যবহার করে। ব্যাকআপ ইতিহাস ব্যবহার করাও দুর্দান্ত ধারণা। তবে পদ্ধতিটি নির্বিশেষে, দূরবর্তীভাবে নির্ভরযোগ্য ডেটা পাওয়ার জন্য আপনার সময় প্রয়োজন।

তা বাদে এটি সত্যিই আপনার পরিস্থিতির উপর নির্ভর করে। এটি হতে পারে আপনার ডিবি এর%% এখন পরবর্তী 6 মাসে কী হবে তার কেবলমাত্র একটি ভগ্নাংশ, উদাহরণস্বরূপ যখন যখন আপনার সফ্টওয়্যারটি আরও স্থল লাভ করবে, তখন যে বিস্ফোরক বৃদ্ধির আগমন ঘটছে তা অনুমান করা অসম্ভব হয়ে পড়ে। এটি হতে পারে যে বার্ষিক বিশাল ডেটা স্থানান্তরগুলি ডিবি এর আকার দ্বিগুণ করবে, তবে আপনি কেবলমাত্র সেই তথ্যের পরে সেই তথ্য সম্পর্কে জানতে পারবেন।

তবে যেমনটি বলা হয়েছে, যদি বৃদ্ধি যদি উদ্বেগের বিষয় হয় তবে আপনার এটির নজর রাখার জন্য আপনার একেবারে কিছু করা উচিত। আপনি যে সর্বশেষ জিনিসটি চান তা হ'ল নিজেকে এখন থেকে 6 মাস আগে একটি ডিবির সাথে তার আজীবন প্রক্ষেপণের চেয়ে দ্বিগুণ আকারে খুঁজে পাওয়া, আপনার গ্রাহককে কীভাবে বা কেন ঘটেছে তা ব্যাখ্যা করার পরেও কী পরিমাণ আরও বাড়বে তা অনুমান করা শুরু করাও নয় পরের 6 মাসে নতুন তথ্যটি কোথায় গেছে এবং নির্দিষ্ট সময়ে প্রতিটি টেবিলের আপেক্ষিক বৃদ্ধি কী তা জানার কিছু সুস্পষ্ট সুবিধা রয়েছে কারণ এটি তুলনামূলকভাবে ছোট পরিশ্রমের জন্য বিভিন্ন প্রবণতা, সম্ভাব্য সফটওয়্যার ইস্যু ইত্যাদির মূল্যবান তথ্য সরবরাহ করতে পারে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.