データベースを処理する一般的なSQL(SQL SERVER)

7283 ワード

常用SQL--閲覧表記録数SELECT a.id,b.[name],a.rowcnt FROM sysindexes a,sys.tables b WHERE a.id=b.[object_id]AND a.indid<=1 ORDER BY b.[name]--ファイルグループSELECT nameを表示し、data_space_idファイル群id,size/128[ファイルサイズ(メガ)],FILEPROPERTY(name,'SpaceUsed')/128[使用済みスペース(メガ)],size/128-FILEPROPERTY(name,'SpaceUsed')/128[未使用スペース(メガ)],FILEPROPERTY(name,'SpaceUsed')*100.0/size[使用率(%),max_size/128[最大値(メガ)],case is_percent_growth when 0 then cast(growth/128 as nvarchar)+'メガ'else cast(growth as nvarchar)+'%'end成長値、physical_名前物理パスFROM sys.database_files a ORDER BY a.[name]
--ファイルグループの作成
ALTER DATABASE ComputingDB_EN ADD FILEGROUP [FG_DailyUsers_2017];ALTER DATABASE ComputingDB_EN ADD FILE (NAME=N'FG_DailyUsers_2017',FILENAME=N'......ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10MB) TO FILEGROUP [FG_DailyUsers_2017];
--データベースサイズSELECT sumを表示する(size/128)[ファイル(メガ)]FROM sys.database_files
≪パーティション化アクション|Partition Actions|Eas≫-パーティション化レコード数select partition_number,rows from sys.partitions where object_id=object_id('xxxx') and index_id in (0,1) order by partition_number;-- 切替区分alter table PczsFunctionLog switch partition 19 to tmp_PczsFunctionLog partition 19;-- 追加パーティションは、ALTER PARTITION SCHEME[DATE_PS]NEXT USED[DATE_10];ALTER PARTITION FUNCTION DATE_PF() SPLIT RANGE (20141001);-- 統合パーティションALTER PARTITION FUNCTION DATE_PF() MERGE RANGE (20141001);
ファイルグループアクション--ファイルグループ作成スクリプトselect name,'ALTER DATABASE'+DB_を生成します.NAME()+' ADD FILEGROUP ['+name+'];ALTER DATABASE '+DB_NAME()+' ADD FILE (NAME=N'''+name+''',FILENAME=N'''+physical_name+''',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10MB) TO FILEGROUP ['+name+'];'from sys.database_files awhere data_space_id>1 order by a.name-ファイルグループdrop table dboを削除する.MobileUseLongLog_201305;drop partition scheme day_ps_201305;dbcc shrinkfile ('data_201305',emptyfile);alter database softuselogdb remove file data_201305;alter database softuselogdb remove filegroup data_201305;-- ファイルグループalter database ghw add filegroup[DATA_201207];alter database ghw add file (name='DATA_201207',filename='e:\data\ghw\DATA_201207.ndf',size=10mb,maxsize=unlimited,filegrowth=10mb)to filegroup DATA_201207
MySQL関連--レコード数の表示select table_name,table_rows from information_schema.tables where table_schema='StDB'--パーティション数の表示select partition_ordinal_position part,table_rowsfrom information_schema.partitionswhere table_schema = schema() and table_name='func_201506';-- テーブル構造レプリケーションcreate table if not exists functionlog_201508 like func_201506--update a inner join b on a.id=b.id set a.name=b.name--insert into a selectを唯一挿入しますか?name from dual where not exists(select 1 from a where id=?id);select last_insert_id();-- 更新後にupdate Cfg_を挿入PczsVID set name=?name where VID=?vid;insert into Cfg_PczsVID(vid,name)select ?vid,?name from dual where ROW_COUNT()=0;-- プロセスshow processlist-killクエリーを表示します.KILL[CONNECTION|QUERY]thread_を参照してください.id--データベースに格納されているすべてのストレージ・プロシージャの基本情報を表示します.所属するデータベース、ストレージ・プロシージャ名、作成時間などのshow procedure statusが含まれます.
--指定されたコンテンツを含むストアド・プロシージャのクエリー
SELECT obj.[Name][ストアド・プロシージャ名],sc.[TEXT][ストアド・プロシージャ内容]
FROM syscomments sc INNER JOIN sysobjects obj ON sc.ID = obj.ID 
WHERE sc.TEXT LIKE '%ResDownloadRank%'   
--ストレージ・プロシージャの詳細show create procedure sp_を表示します.name
ALTER procedure [dbo].[PR_InitTable]
as
begin
 declare @sql nvarchar(max);
 declare @now datetime=getdate();
 declare @date datetime;
 declare @month nvarchar(6);
 declare @i int;
 set @i=0;
 while @i<3 begin
  set @date=DATEADD(dd,-7-@i,@now);
  set @sql = N'
 if object_id(N''PczsConnectLog_'+ convert(nvarchar,@date,112) +''',N''U'') is not null begin
  drop table PczsConnectLog_'+ convert(nvarchar,@date,112) +';
 end';
  exec sp_executesql @sql;
  set @i=@i+1;
 end
 
 set @i=0;
 while @i<3 begin
  set @date=DATEADD(mm,-3-@i,@now);
  set @month=cast(datepart(yy,@date)*100+datepart(mm,@date) as nvarchar);
  set @sql = N'
 if object_id(N''MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +''',N''U'') is not null begin
  drop table MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +';
 end';
  exec sp_executesql @sql;
  set @i=@i+1;
 end
 
 set @i=0;
 while @i<3 begin
  set @date=DATEADD(mm,-3-@i,@now);
  set @month=cast(datepart(yy,@date)*100+datepart(mm,@date) as nvarchar);
  set @sql = N'
 if exists (select * from sys.partition_schemes where name = N''PS_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +''') begin
  drop partition scheme PS_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +';
  dbcc shrinkfile (''FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +''',emptyfile);
  alter database ComputingDB_Func remove file FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +';
  alter database ComputingDB_Func remove filegroup FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +';
 end';
  exec sp_executesql @sql;
  set @i=@i+1;
 end
 
 set @i=0;
 while @i<3 begin
  set @date=DATEADD(mm,1+@i,@now);
  set @month=cast(datepart(yy,@date)*100+datepart(mm,@date) as nvarchar);
  set @sql = N'
 if not exists (select * from sys.partition_schemes where name = N''PS_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +''') begin
  ALTER DATABASE ComputingDB_Func ADD FILEGROUP [FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +'];
  ALTER DATABASE ComputingDB_Func ADD FILE (
   NAME=N''FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +''',
   FILENAME=N''f:\MSSQL10.MSSQLSERVER\MSSQL\DATA\ComputingDB_Func\FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +'.ndf'',
   SIZE=10MB,
   MAXSIZE=UNLIMITED,
   FILEGROWTH=10MB
  ) TO FILEGROUP [FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +'];
  create partition scheme [PS_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +'] as partition [PF_Part] all to ([FG_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +']);
 end';
  exec sp_executesql @sql;
  set @sql = N' 
 if object_id(N''MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +''',N''U'') is null begin
  CREATE TABLE MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +'(
	[SoftID] [int] NOT NULL,
	[Platform] [tinyint] NOT NULL,
	[VersionID] [int] NOT NULL,
	[FunctionID] [int] NOT NULL,
	[FunctionLabel] [nvarchar](100) NULL,
	[IMEI] [varchar](100) NOT NULL,
	[Part] [tinyint] NOT NULL,
	[OptionDate] [int] NOT NULL,
	[OptionHour] [int] NOT NULL,
	[OptionTimes] [int] NOT NULL,
	[NetMode] [tinyint] NOT NULL,
	[Jailbroken] [tinyint] NOT NULL,
	[IP] [bigint] NOT NULL,
	[HashCode] [int] NOT NULL,
	[ParamTagID] [int] NULL
  ) ON [PS_MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +']([Part]);
  CREATE CLUSTERED INDEX [IX_Date] ON [MobileFunctionLog_Sum_'+ cast(@month as nvarchar) +'] ([OptionDate] ASC);
 end';
  exec sp_executesql @sql;
  set @i=@i+1;
 end
end