最近のトラックバック

最近のコメント

2017年1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

SQLServer

2013年3月13日 (水)

Analysis Servicesのメジャー項目

キューブのメジャーの定義で標準偏差とか平均とかが使えないなんて信じらんない!

PowerPivotの最初のバージョンも使えなかったみたいだったですが、いったいなぜなんだろ?

IndexのDisableとDropの違い

Disabling vs. Dropping Indexes

  • disable
    インデックスヒントで指定してしまうとエラーとなる。
    外部キーも無効になる。
    →非クラスタ化インデックスの場合、ページは解放される。
    →クラスタ化インデックスの場合、テーブルなのでそのまま残るが、drop/rebuild以外は不可。
     関連する非クラスタ化インデックスやビューもアクセスできない。
     外部キーも無効。
     テーブルに対するクエリーはエラーとなる。
    re-enableする場合は、rebuildするしかない。alter index....enableコマンドは存在しない。
    rebuildすると、sys.dm_db_index_usage_statsの値はリセットされる。

  • drop
    クラスタ化インデックスでインデックスをdropすると、テーブルはheapになる。
    dropすると、再びcreateするしかない。

2011年10月27日 (木)

SQL*Plusとsqlcmd

なんで、sqlcmd(SQL Server Mangement Studioも)、SQL*Plusみたいな表示書式の設定ができないんだろう?なんか理由があったのかなぁ。

SQL*PlusのCOLUMN FORMATとかSET NUMFORMATとかね。

2011年3月23日 (水)

古書サイト「スーパー源氏」

DBはSQL Serverだった。
検索したらデッドロック(なぜか!)になってエラーメッセージが画面に表示。

こんな感じ。
Error: [1205] [2] "[Microsoft][ODBC SQL Server Driver][SQL Server]トランザクション (プロセス ID 58) が、ロック | 通信バッファ 個のリソースで他のプロセスとデッドロックして、このトランザクションがそのデッドロックの対象となりました。トランザクションを再実行してください。"

2010年7月15日 (木)

マルチパート識別子 をバインドできませんでした

これはSQLで使われているエリアス名を見直すと直ることが多いはず。

2010年7月14日 (水)

メモリ消費量を調査

メモリ消費量、メモリ使用量を調べるときには、

DBCC MEMORYSTATUSを使う。

DBCC MEMORYSTATUS コマンドを使用して SQL Server 2005 のメモリ使用量を監視する方法

リストを使ったSQL?

TVPとINSERT OVER DMLを調べる過程で知ったこと。

こんなことも出来るらしい。

(1)まずはテーブルを作成

CREATE TABLE [dbo].[Contacts](
[Name] [nvarchar](50) NULL,
[Age] [decimal](18, 0) NULL,
[SalesId] [decimal](18, 0) NULL
) ON [PRIMARY]

GO

CREATE TABLE [dbo].[Employee](
[EmployeeID] [nvarchar](50) NULL,
[EmployeeName] [nvarchar](50) NULL
) ON [PRIMARY]

GO

(2) INSERTを実行

INSERT INTO dbo.Contacts (Name, Age, SalesId)
VALUES ('John Doe', 25,5),
  ('Jane Doe', 36,6),
  ('Peter Doe', 49,7),
  ('Ralf Doe', 31,8),
  ('Smith Doe', 51, 3)
GO

INSERT INTO dbo.Employees (EmployeeID, EmployeeName)
VALUES  (7, 'Peter Doe'),
  (6, 'Jane Doe'),
  (3, 'Smith Doe')
GO

(3)続いてSELECT文を実行

SELECT *
FROM
(VALUES ('John Doe',25,5),
   ('Jane Doe', 36,6),
   ('Peter Doe', 49,7))
  p(pName, pAge, pSalesID)
GO

SELECT *
FROM dbo.Employees emp
JOIN (VALUES ('John Doe',25,5), 
    ('Jane Doe', 36,6),
    ('Peter Doe', 49,7))
  p(pName, pAge, pSalesID)
ON emp.EmployeeID = p.pSalesID
GO

モトネタはこちら。

More SQL Server 2008 T-SQL Coolness - Table Value Constructors (or better, Row Constructors)

2010年6月23日 (水)

SQLServerのデータファイル空き容量の出し方

select
name,
size * 8/1024 AS [ファイルサイズ(MB)] ,
FILEPROPERTY(file_name(fileid),'SpaceUsed')*8192.0/power(1024.0,2) AS [使用領域(MB)] ,
(FILEPROPERTY(file_name(fileid),'SpaceUsed')*8192.0/power(1024.0,2))
/(convert(numeric(20),size) * 8192/1024/1024) * 100 as [使用率(%)]
from dbo.sysfiles

2010年6月15日 (火)

空き領域の監視

えっ!SQLServerって、ファイルの空き容量を見るビューが存在しないの?

※トランザクションログやtempDBに関してはあるのに、ノーマルな表領域に関してはないのはなぜ?dba_free_spaceみたいなビューがほしい

2010年3月13日 (土)

SQLServer 2008

2008では、BACKUP LOG xxxx WITH TRUNCATE_ONLYが使えない。

2008からは単純復旧モデルにするか、こまめにバックアップするしか方法がないらしい。