sql >> データベース >  >> RDS >> Sqlserver

SQLServerパフォーマンスファイルのIO統計

    こんにちは、

    ディスクIO統計は、SQLServerのパフォーマンス基準にとって非常に重要です。

    SQL Serverのすべてのトランザクションは、IOを使用して物理ディスクからバッファにデータを移動します。トランザクションが完了すると、その逆に、関連するすべてのデータがバッファから物理ディスクに転送されます。

    したがって、ディスク速度とIO統計は、パフォーマンス基準にとって非常に重要です。

    IO統計と以下の情報を確認するには、以下のスクリプトを実行できます。

    • マシン名
    • インスタンス名
    • SQLServer名
    • データベース名
    • 論理名
    • 物理的な名前
    • ディスクドライブ
    • ファイルの種類
    • ディスク上のサイズ
    • 成長
    • 読み取り数
    • 書き込み数
    • IO_stall_read_ms
    • IO_stall_write_ms

    select 
    serverproperty('MachineName') 'machine_name'
    ,isnull(serverproperty('InstanceName'),'mssqlserver') 'instance_name'
    ,@@SERVERNAME 'sql_server_name'
    ,DB_NAME(mf.database_id) 'database_name'
    ,mf.name 'logical_name'
    ,mf.physical_name 'physical_name'
    ,left(mf.physical_name,1) 'disk_drive'
    ,mf.type_desc 'file_type'
    ,mf.state_desc 'state'
    ,case mf.is_read_only
    when 0 then 'no'
    when 1 then 'yes'
    end 'read_only'
    ,convert(numeric(18,2),convert(numeric,mf.size)*8/1024) 'size_mb'
    ,divfs.size_on_disk_bytes/1024/1024 'size_on_disk_mb'
    ,case mf.is_percent_growth
    when 0 then cast(convert(int,convert(numeric,mf.growth)*8/1024) as varchar) + ' MB'
    when 1 then cast(mf.growth as varchar) + '%'
    end 'growth'
    ,case mf.is_percent_growth
    when 0 then convert(numeric(18,2),convert(numeric,mf.growth)*8/1024)
    when 1 then convert(numeric(18,2),(convert(numeric,mf.size)*mf.growth/100)*8/1024)
    end 'next_growth_mb'
    ,case mf.max_size
    when 0 then 'NO-growth'
    when -1 then (case mf.growth when 0 then 'NO-growth' else 'unlimited' end)
    else cast(convert(int,convert(numeric,mf.max_size)*8/1024) as varchar)+' MB'
    end 'max_size'
    
    ,divfs.num_of_reads
    ,divfs.num_of_bytes_read/1024/1024 'read_mb'
    ,divfs.io_stall_read_ms
    
    ,divfs.num_of_writes
    ,divfs.num_of_bytes_written/1024/1024 'write_mb'
    ,divfs.io_stall_write_ms
    
    from sys.master_files as mf
    left outer join sys.dm_io_virtual_file_stats(null,null) as divfs
    on mf.database_id=divfs.database_id and mf.file_id=divfs.file_id;
    
    
    
    


    1. SQL-サーバーのIPアドレスを取得するためのクエリ

    2. RDSソリューションのビッグテーブルをテーブルフルエラーに変更

    3. テーブルAPIとトランザクションAPIの違いを理解する

    4. MySQLは一意の制約のnull値を無視しますか?