2

ファイル グループとそのファイル (.ndf) に関していくつか質問があります。

  1. 多くのファイルを含むファイル グループは、ファイルが 1 つだけのファイル グループよりも高速ですか? (すべてのファイルは同じドライブに配置されます。つまり、データへのアクセス時間は同じです)
  2. (1)が偽の場合。ドライブ A と B に多数のファイルが分散しているファイル グループは、ドライブ A または B にファイルが 1 つしかないファイル グループよりも高速ですか? (ドライブ A と B が同じモデルであるとします)
4

2 に答える 2

2

通常、ファイル グループごとに 1 つのファイル、ディスク セット/ボリューム/コントローラーごとに 1 つのファイル グループがあります。

ファイル グループごとに複数のファイルがあると、比例していっぱいになるため、期待どおりに IO が分散されない可能性があります。同じディスクか別のディスクか

「ファイルごとに 1 つのスレッド」という概念は、神話のようなものです

于 2010-11-24T16:59:33.857 に答える
0

意見を検証する唯一の方法は、自分で作成した冷たく厳しい統計情報を使用することです。スティックを使用します。コンピュータに USB 3 ポートがいくつかある場合は、4 GB の USB メモリ スティックを 4 つ購入してください。それらが同一であることを確認してください。1 つのスティックに LDF ファイルを含むデータベースを作成し、別のスティックに PRIMARY ファイルグループを作成します。次に、残りの各スティックに 1 つずつ、さらに 2 つの FILEGROUP を作成します。次に、各 FILEGROUP にファイルを追加します。CubeSpark では、CORE ごとに 1 つのファイルを追加し、FILEGROUP ごとに最大 4 つのファイルを追加することをお勧めします。8 つのファイルをテストする場合は、8 つ追加します。次に、テーブルを FILEGROUPS に追加し、それらに大量のデータをロードします。いくつかのタイミングを作成します。ファイル設定 (初期サイズ、成長率) を微調整することを忘れないでください。たぶん、このコードで遊ぶことができます。スティックのパスを変更する必要があります。マウント ポイントが異なるため (ドライブ文字)。楽しむ。

USE master;
GO

IF DB_ID('CubeSpark') IS NOT NULL
BEGIN
    DROP DATABASE [CubeSpark]
END

--  GB to start?
CREATE DATABASE [CubeSpark] CONTAINMENT = NONE
 ON PRIMARY 
  -- Proportional fill. This must NOT be used as the default FILEGROUP. PLEASE DO NOT CHANGE THAT! 
  -- PRIMARY is USED ONLY FOR SYSTEM METATDATA, NOT USER DATA!!!!
( NAME = N'CubeSpark_SYSTEM_0', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_sys_0.mdf' , SIZE = 10MB , MAXSIZE = 40MB, FILEGROWTH = 5MB), 
( NAME = N'CubeSpark_SYSTEM_1', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_sys_1.mdf' , SIZE = 10MB , MAXSIZE = 40MB, FILEGROWTH = 5MB), 

 FILEGROUP [FACTS] DEFAULT 
 -- 60 GB to start.
( NAME = N'CubeSpark_FACTS_0', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_FACTS_0.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_FACTS_1', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_FACTS_1.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_FACTS_2', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_FACTS_2.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_FACTS_3', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_FACTS_3.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_FACTS_4', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_FACTS_4.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_FACTS_5', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_FACTS_5.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 

 FILEGROUP [MATERIALIZED]
 -- 1 GB to start - which is sized VERY large given materialized views data as of May 25th.
( NAME = N'CubeSpark_MATERIALIZED_0', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_MATERIALIZED_0.ndf' , SIZE = 100MB , MAXSIZE = UNLIMITED, FILEGROWTH = 25MB), 
( NAME = N'CubeSpark_MATERIALIZED_1', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_MATERIALIZED_1.ndf' , SIZE = 100MB , MAXSIZE = UNLIMITED, FILEGROWTH = 25MB), 
( NAME = N'CubeSpark_MATERIALIZED_2', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_MATERIALIZED_2.ndf' , SIZE = 100MB , MAXSIZE = UNLIMITED, FILEGROWTH = 25MB), 
( NAME = N'CubeSpark_MATERIALIZED_3', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_MATERIALIZED_3.ndf' , SIZE = 100MB , MAXSIZE = UNLIMITED, FILEGROWTH = 25MB), 

 FILEGROUP [INDICES] -- non-clustered
 -- 12 GB to start.
( NAME = N'CubeSpark_INDICES_0', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_INDICES_0.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_INDICES_1', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_INDICES_1.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_INDICES_2', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_INDICES_2.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_INDICES_3', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_INDICES_3.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 

-- 4 GB to start.
 FILEGROUP [SPOKES] -- 40 GB to Start
( NAME = N'CubeSpark_DIMS_0', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_DIMS_0.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_DIMS_1', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_DIMS_1.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_DIMS_2', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_DIMS_2.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB), 
( NAME = N'CubeSpark_DIMS_3', FILENAME = N'C:\OLTP_DATA\CubeSpark\CubeSpark_DIMS_3.ndf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB)

 LOG ON -- 8 GB to start. Log files fill sequentially, not in parallel
( NAME = N'CubeSpark_log_0', FILENAME = N'C:\OLTP_TLOG\CubeSpark\CubeSpark_log_0.ldf' , SIZE = 2GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB ), 
( NAME = N'CubeSpark_log_1', FILENAME = N'C:\OLTP_TLOG\CubeSpark\CubeSpark_log_1.ldf' , SIZE = 2GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB ),
( NAME = N'CubeSpark_log_2', FILENAME = N'C:\OLTP_TLOG\CubeSpark\CubeSpark_log_2.ldf' , SIZE = 2GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB ),
( NAME = N'CubeSpark_log_3', FILENAME = N'C:\OLTP_TLOG\CubeSpark\CubeSpark_log_3.ldf' , SIZE = 2GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB )
GO

ALTER DATABASE [CubeSpark] SET RECOVERY SIMPLE 
ALTER DATABASE [CubeSpark] SET COMPATIBILITY_LEVEL = 110
ALTER DATABASE [CubeSpark] SET ANSI_NULL_DEFAULT ON 
ALTER DATABASE [CubeSpark] SET ANSI_NULLS ON 
ALTER DATABASE [CubeSpark] SET ANSI_PADDING ON 
ALTER DATABASE [CubeSpark] SET ANSI_WARNINGS OFF 
ALTER DATABASE [CubeSpark] SET ARITHABORT ON 
ALTER DATABASE [CubeSpark] SET NUMERIC_ROUNDABORT OFF 
ALTER DATABASE [CubeSpark] SET CONCAT_NULL_YIELDS_NULL ON 
ALTER DATABASE [CubeSpark] SET QUOTED_IDENTIFIER ON 
ALTER DATABASE [CubeSpark] SET DATE_CORRELATION_OPTIMIZATION ON 
ALTER DATABASE [CubeSpark] SET AUTO_CLOSE OFF 
ALTER DATABASE [CubeSpark] SET AUTO_CREATE_STATISTICS ON 
ALTER DATABASE [CubeSpark] SET AUTO_UPDATE_STATISTICS ON 
ALTER DATABASE [CubeSpark] SET AUTO_SHRINK OFF 
ALTER DATABASE [CubeSpark] SET CURSOR_CLOSE_ON_COMMIT OFF 
ALTER DATABASE [CubeSpark] SET CURSOR_DEFAULT GLOBAL 
ALTER DATABASE [CubeSpark] SET RECURSIVE_TRIGGERS OFF 
ALTER DATABASE [CubeSpark] SET DISABLE_BROKER 
ALTER DATABASE [CubeSpark] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
ALTER DATABASE [CubeSpark] SET TRUSTWORTHY OFF 
ALTER DATABASE [CubeSpark] SET ALLOW_SNAPSHOT_ISOLATION OFF 
ALTER DATABASE [CubeSpark] SET PARAMETERIZATION SIMPLE 
ALTER DATABASE [CubeSpark] SET READ_COMMITTED_SNAPSHOT OFF 
ALTER DATABASE [CubeSpark] SET HONOR_BROKER_PRIORITY OFF 
ALTER DATABASE [CubeSpark] SET PAGE_VERIFY CHECKSUM  
ALTER DATABASE [CubeSpark] SET DB_CHAINING OFF 
ALTER DATABASE [CubeSpark] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
ALTER DATABASE [CubeSpark] SET TARGET_RECOVERY_TIME = 0 SECONDS 
ALTER DATABASE [CubeSpark] SET  MULTI_USER 
ALTER DATABASE [CubeSpark] SET  READ_WRITE 
GO

IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) 
BEGIN
    EXEC [CubeSpark].[dbo].[sp_fulltext_database] @action = 'enable'
END
GO
于 2015-10-20T22:57:20.813 に答える