Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 77d0fc0

Browse files
Updated Blocking Tree query
Updated Blocking Tree query
1 parent cc83fd9 commit 77d0fc0

File tree

11 files changed

+180
-44
lines changed

11 files changed

+180
-44
lines changed

‎.vs/SQLDBA-SSMS Solution/v15/.ssms_suo

0 Bytes
Binary file not shown.

‎BlitzQueries/BlitzQueries.ssmssqlproj

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<Items>
44
<LogicalFolder Name="Connections" Type="2" Sorted="true">
55
<Items>
6-
<ConnectionNode Name="(local):CORPORATE\adwivedi">
6+
<ConnectionNode Name="(local):MSI\ajayd">
77
<Created>2019年08月22日T17:19:33.2581521+05:30</Created>
88
<Type>SQL</Type>
99
<Server>(local)</Server>
@@ -15,7 +15,7 @@
1515
<ConnectionProtocol>NotSpecified</ConnectionProtocol>
1616
<ApplicationName>Microsoft SQL Server Management Studio - Query</ApplicationName>
1717
</ConnectionNode>
18-
<ConnectionNode Name="LOCALHOST:CORPORATE\adwivedi">
18+
<ConnectionNode Name="LOCALHOST:MSI\ajayd">
1919
<Created>2019年10月04日T19:57:18.2935143+05:30</Created>
2020
<Type>SQL</Type>
2121
<Server>LOCALHOST</Server>
@@ -187,12 +187,6 @@
187187
<AssociatedConnUserName />
188188
<FullPath>Very-Large-Databases-Optimization.sql</FullPath>
189189
</FileNode>
190-
<FileNode Name="Vw_WhoIsActive_Blocking.sql">
191-
<AssociatedConnectionMoniker />
192-
<AssociatedConnSrvName />
193-
<AssociatedConnUserName />
194-
<FullPath>Vw_WhoIsActive_Blocking.sql</FullPath>
195-
</FileNode>
196190
<FileNode Name="WaitStats-Short-Period.sql">
197191
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True</AssociatedConnectionMoniker>
198192
<AssociatedConnSrvName>(local)</AssociatedConnSrvName>

‎Blocking Alert/Blocking Alert.ssmssqlproj

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,17 @@
9191
<AssociatedConnUserName />
9292
<FullPath>Blocking-Alert-Azure.sql</FullPath>
9393
</FileNode>
94-
<FileNode Name="Blocking-Tree.sql">
94+
<FileNode Name="BlockingTree-Live.sql">
9595
<AssociatedConnectionMoniker />
9696
<AssociatedConnSrvName />
9797
<AssociatedConnUserName />
98-
<FullPath>Blocking-Tree.sql</FullPath>
98+
<FullPath>BlockingTree-Live.sql</FullPath>
99+
</FileNode>
100+
<FileNode Name="BlockingTree-Live-WhoIsActive.sql">
101+
<AssociatedConnectionMoniker />
102+
<AssociatedConnSrvName />
103+
<AssociatedConnUserName />
104+
<FullPath>BlockingTree-Live-WhoIsActive.sql</FullPath>
99105
</FileNode>
100106
<FileNode Name="Find-Blocking-Tree-LockTime.sql">
101107
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True</AssociatedConnectionMoniker>
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
USE tempdb;
2+
3+
DECLARE @s VARCHAR(MAX), @t VARCHAR(MAX);
4+
DECLARE @tableName varchar(255);
5+
DECLARE @DeleteFlag bit = 0; /* 0 = drop, 1 = truncate, 2 = No Action */
6+
SET @tableName = 'tempdb.dbo.WhoIsActive_ResultSet';
7+
8+
EXEC sp_WhoIsActive @sort_order = '[start_time] ASC', @get_outer_command=1, @find_block_leaders=1 --,@get_full_inner_text=1
9+
--,@get_transaction_info=1
10+
--,@get_task_info=2, @get_avg_time=1, @get_additional_info=1
11+
--,@get_plans=1 /* 1 = current query, 2 = entire batch */
12+
,@return_schema = 1, @schema = @s OUTPUT
13+
14+
SET @s = REPLACE(@s, '<table_name>', @tableName)
15+
16+
IF(@DeleteFlag = 0)
17+
SET @t = 'IF OBJECT_ID('''+@tableName+''') IS NOT NULL DROP TABLE '+@tableName;
18+
IF(@DeleteFlag = 1)
19+
SET @t = 'IF EXISTS(SELECT * FROM '+@tableName+') TRUNCATE TABLE '+@tableName;
20+
IF(@DeleteFlag = 2)
21+
SET @t = '-- ignore';
22+
23+
EXEC(@t);
24+
SET @s = 'IF OBJECT_ID('''+@tableName+''') IS NULL '+@s;
25+
EXEC(@s);
26+
27+
28+
EXEC sp_WhoIsActive @sort_order = '[start_time] ASC', @get_outer_command=1, @find_block_leaders=1 --,@get_full_inner_text=1
29+
--,@get_transaction_info=1
30+
--,@get_task_info=2, @get_avg_time=1, @get_additional_info=1
31+
--,@get_plans=1 /* 1 = current query, 2 = entire batch */
32+
,@destination_table = @tableName;
33+
34+
--select r.*
35+
--from dbo.WhoIsActive_ResultSet as r; -- @tableName
36+
--go
37+
38+
39+
;WITH T_BLOCKERS AS
40+
(
41+
-- Find block Leaders
42+
SELECT r.[dd hh:mm:ss.mss], r.[session_id], r.[sql_text],
43+
[batch_text] = REPLACE(REPLACE(REPLACE(REPLACE(CAST(COALESCE(r.[sql_command],r.[sql_text]) AS VARCHAR(MAX)),char(13),''),CHAR(10),''),'<?query --',''),'--?>',''),
44+
r.[sql_command], r.[login_name], r.[wait_info], r.[tempdb_allocations], r.[tempdb_current],
45+
r.[blocking_session_id], r.[blocked_session_count], r.[reads], r.[writes], r.[physical_reads], r.[CPU], r.[used_memory], r.[status], r.[open_tran_count],
46+
r.[percent_complete], r.[host_name], r.[database_name], r.[program_name], r.[start_time], r.[login_time], r.[request_id], r.[collection_time]
47+
,[LEVEL] = CAST (REPLICATE ('0', 4-LEN (CAST (r.session_id AS VARCHAR))) + CAST (r.session_id AS VARCHAR) AS VARCHAR (1000))
48+
FROM tempdb.dbo.WhoIsActive_ResultSet AS r
49+
WHERE (ISNULL(r.blocking_session_id,0) = 0 OR ISNULL(r.blocking_session_id,0) = r.session_id)
50+
AND EXISTS (SELECT * FROM tempdb.dbo.WhoIsActive_ResultSet AS R2 WHERE R2.collection_time = r.collection_time AND ISNULL(R2.blocking_session_id,0) = r.session_id AND ISNULL(R2.blocking_session_id,0) <> R2.session_id)
51+
--
52+
UNION ALL
53+
--
54+
SELECT r.[dd hh:mm:ss.mss], r.[session_id], r.[sql_text],
55+
[batch_text] = REPLACE(REPLACE(REPLACE(REPLACE(CAST(COALESCE(r.[sql_command],r.[sql_text]) AS VARCHAR(MAX)),char(13),''),CHAR(10),''),'<?query --',''),'--?>',''),
56+
r.[sql_command], r.[login_name], r.[wait_info], r.[tempdb_allocations], r.[tempdb_current],
57+
r.[blocking_session_id], r.[blocked_session_count], r.[reads], r.[writes], r.[physical_reads], r.[CPU], r.[used_memory], r.[status], r.[open_tran_count],
58+
r.[percent_complete], r.[host_name], r.[database_name], r.[program_name], r.[start_time], r.[login_time], r.[request_id], r.[collection_time]
59+
,CAST (B.LEVEL + RIGHT (CAST ((1000 + r.session_id) AS VARCHAR (100)), 4) AS VARCHAR (1000)) AS LEVEL
60+
FROM tempdb.dbo.WhoIsActive_ResultSet AS r
61+
INNER JOIN
62+
T_BLOCKERS AS B
63+
ON r.collection_time = B.collection_time
64+
AND r.blocking_session_id = B.session_id
65+
WHERE r.blocking_session_id <> r.session_id
66+
)
67+
--select * from T_BLOCKERS
68+
69+
SELECT [BLOCKING_TREE] = N' ' + REPLICATE (N'| ', LEN (LEVEL)/4 - 1)
70+
+ CASE WHEN (LEN(LEVEL)/4 - 1) = 0
71+
THEN 'HEAD - '
72+
ELSE '|------ '
73+
END
74+
+ CAST (r.session_id AS NVARCHAR (10)) + N' ' + (CASE WHEN LEFT(r.[batch_text],1) = '(' THEN SUBSTRING(r.[batch_text],CHARINDEX('exec',r.[batch_text]),LEN(r.[batch_text])) ELSE r.[batch_text] END),
75+
r.[dd hh:mm:ss.mss], r.[session_id], r.[sql_text], r.[sql_command], r.[login_name], r.[wait_info], r.[tempdb_allocations], r.[tempdb_current],
76+
r.[blocking_session_id], r.[blocked_session_count], r.[reads], r.[writes], r.[physical_reads], r.[CPU], r.[used_memory], r.[status], r.[open_tran_count],
77+
r.[percent_complete], r.[host_name], r.[database_name], r.[program_name], r.[start_time], r.[login_time], r.[request_id], r.[collection_time]
78+
FROM T_BLOCKERS AS r
79+
ORDER BY collection_time, LEVEL ASC;
80+

‎Blocking Alert/Blocking-Tree.sql renamed to ‎Blocking Alert/BlockingTree-Live.sql

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
-- Identify the Lead Blocker (RealTime)
12
IF OBJECT_ID('tempdb..#SysProcesses') IS NOT NULL
23
DROP TABLE #SysProcesses;
34
select Concat
@@ -15,12 +16,29 @@ select Concat
1516
,SUBSTRING(t.text, (r.stmt_start/2)+1,
1617
((CASE r.stmt_end WHEN -1 THEN DATALENGTH(t.text)
1718
ELSE r.stmt_end END - r.stmt_start)/2) + 1) AS sql_text
18-
--,r.cmd
19+
,r.cmdas command
1920
,r.loginame as login_name
2021
,db_name(r.dbid) as database_name
21-
,r.program_name
22+
,[program_name] = CASE WHEN r.program_name like 'SQLAgent - TSQL JobStep %'
23+
THEN ( select top 1 'SQL Job = '+j.name
24+
from msdb.dbo.sysjobs (nolock) as j
25+
inner join msdb.dbo.sysjobsteps (nolock) AS js on j.job_id=js.job_id
26+
where right(cast(js.job_id as nvarchar(50)),10) = RIGHT(substring(r.program_name,30,34),10)
27+
) + ' ( '+SUBSTRING(LTRIM(RTRIM(r.program_name)), CHARINDEX(': Step ',LTRIM(RTRIM(r.program_name)))+2,LEN(LTRIM(RTRIM(r.program_name)))-CHARINDEX(': Step ',LTRIM(RTRIM(r.program_name)))-2)+' )'
28+
ELSE r.program_name
29+
END
2230
,(case when r.waittime = 0 then null else r.lastwaittype end) as wait_type
2331
,r.waittime as wait_time
32+
,(SELECT CASE
33+
WHEN pageid = 1 OR pageid % 8088 = 0 THEN 'PFS'
34+
WHEN pageid = 2 OR pageid % 511232 = 0 THEN 'GAM'
35+
WHEN pageid = 3 OR (pageid - 1) % 511232 = 0 THEN 'SGAM'
36+
WHEN pageid IS NULL THEN NULL
37+
ELSE 'Not PFS/GAM/SGAM' END
38+
FROM (SELECT CASE WHEN er.[wait_type] LIKE 'PAGE%LATCH%' AND er.[wait_resource] LIKE '%:%'
39+
THEN CAST(RIGHT(er.[wait_resource], LEN(er.[wait_resource]) - CHARINDEX(':', er.[wait_resource], LEN(er.[wait_resource])-CHARINDEX(':', REVERSE(er.[wait_resource])))) AS INT)
40+
ELSE NULL END AS pageid) AS latch_pageid
41+
) AS wait_resource_type
2442
,null as tempdb_allocations
2543
,null as tempdb_current
2644
,r.blocked as blocking_session_id
@@ -47,7 +65,7 @@ CROSS APPLY sys.dm_exec_sql_text(r.SQL_HANDLE) as t;
4765
-- Find block Leaders
4866
SELECT [dd hh:mm:ss], [collection_time], [session_id],
4967
[sql_text] = REPLACE(REPLACE(REPLACE(REPLACE(CAST(COALESCE([sql_command],[sql_text]) AS VARCHAR(MAX)),char(13),''),CHAR(10),''),'<?query --',''),'--?>',''),
50-
[login_name], wait_type, r.wait_time, [blocking_session_id], null as [blocked_session_count],
68+
command, [login_name], wait_type, r.wait_time, wait_resource_type, [blocking_session_id], null as [blocked_session_count],
5169
[status], open_tran, [host_name], [database_name], [program_name],
5270
r.cpu, r.[tempdb_allocations], r.[tempdb_current], r.[reads], r.[writes], r.[physical_io],
5371
[LEVEL] = CAST (REPLICATE ('0', 4-LEN (CAST (r.session_id AS VARCHAR))) + CAST (r.session_id AS VARCHAR) AS VARCHAR (1000))
@@ -59,7 +77,7 @@ CROSS APPLY sys.dm_exec_sql_text(r.SQL_HANDLE) as t;
5977
--
6078
SELECT r.[dd hh:mm:ss], r.[collection_time], r.[session_id],
6179
[sql_text] = REPLACE(REPLACE(REPLACE(REPLACE(CAST(COALESCE(r.[sql_command],r.[sql_text]) AS VARCHAR(MAX)),char(13),''),CHAR(10),''),'<?query --',''),'--?>',''),
62-
r.[login_name], r.wait_type, r.wait_time, r.[blocking_session_id], null as [blocked_session_count],
80+
r.command, r.[login_name], r.wait_type, r.wait_time, r.wait_resource_type, r.[blocking_session_id], null as [blocked_session_count],
6381
r.[status], r.open_tran, r.[host_name], r.[database_name], r.[program_name],
6482
r.cpu, r.[tempdb_allocations], r.[tempdb_current], r.[reads], r.[writes], r.[physical_io],
6583
CAST (B.LEVEL + RIGHT (CAST ((1000 + r.session_id) AS VARCHAR (100)), 4) AS VARCHAR (1000)) AS LEVEL
@@ -70,25 +88,25 @@ CROSS APPLY sys.dm_exec_sql_text(r.SQL_HANDLE) as t;
7088
AND r.blocking_session_id = B.session_id
7189
WHERE r.blocking_session_id <> r.session_id
7290
)
73-
--select * from T_BLOCKERS
74-
7591
SELECT [dd hh:mm:ss],
7692
[BLOCKING_TREE] = N' ' + REPLICATE (N'| ', LEN (LEVEL)/4 - 1)
7793
+ CASE WHEN (LEN(LEVEL)/4 - 1) = 0
7894
THEN 'HEAD - '
7995
ELSE '|------ '
8096
END
8197
+ CAST (r.session_id AS NVARCHAR (10)) + N' ' + (CASE WHEN LEFT(r.[sql_text],1) = '(' THEN SUBSTRING(r.[sql_text],CHARINDEX('exec',r.[sql_text]),LEN(r.[sql_text])) ELSE r.[sql_text] END),
82-
[session_id], [blocking_session_id],
98+
--[session_id], [blocking_session_id],
8399
--w.lock_text,
84100
[sql_commad] = CONVERT(XML, '<?query -- '+char(13)
85101
+ (CASE WHEN LEFT([sql_text],1) = '(' THEN SUBSTRING([sql_text],CHARINDEX('exec',[sql_text]),LEN([sql_text])) ELSE [sql_text] END)
86102
+ char(13)+'--?>')
87-
,[login_name], [program_name], [database_name], wait_type, wait_time, status, [blocked_session_count], r.open_tran
103+
,command, [login_name], [program_name], [database_name], wait_type, wait_time, wait_resource_type, status, [blocked_session_count], r.open_tran
88104
,r.cpu, r.[reads], r.[writes], r.[physical_io]
89105
,[host_name]
90106
FROM T_BLOCKERS AS r
91107
ORDER BY LEVEL ASC;
92108

93-
exec sp_WhoIsActive;
94-
--EXEC sp_WhoIsActive @filter_type = 'session' ,@filter = '47'
109+
--exec sp_WhoIsActive --@find_block_leaders = 1, @sort_order = '[blocked_session_count] DESC [start_time] ASC';
110+
--EXEC sp_WhoIsActive @filter_type = 'login' ,@filter = 'CORP\dwivedaj_sa'
111+
112+
--exec sp_WhoIsActive @help = 1

‎Planning-And-Installation/Installation-Checklist.sql

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,11 @@ SqlInstance:-
66
Service Accounts:-
77
Environment (Dev/QA/UAT/Prod):-
88

9-
Instance Root directory:- E:\MSSQL\
10-
Data Directory:- E:\Data\
11-
Log Directory:- E:\Log\
12-
TempDb Directory:- E:\TempDb\
13-
Backup Directory:- E:\Backup\
14-
15-
E:\
16-
E:\MSSQL\
17-
E:\Data\
18-
E:\Log\
19-
E:\TempDb\
20-
E:\Backup\
21-
22-
E:\Facebook\ - data\log
23-
E:\Twitter\ - data\log\
24-
E:\Amazon\ - data\log\
25-
9+
Instance Root directory:- E:\MSSQL<version>.<InstanceName>\MSSQL\ (E:\MSSQL14.MSSQLSERVER\MSSQL\)
10+
Data Directory:- E:\MSSQL<version>.<InstanceName>\Data\
11+
Log Directory:- E:\MSSQL<version>.<InstanceName>\Log\
12+
TempDb Directory:- E:\MSSQL<version>.<InstanceName>\TempDb\
13+
Backup Directory:- E:\MSSQL<version>.<InstanceName>\Backup\
2614

2715
Max Memory Configuration:-
2816
Degree of Parallelism:-
@@ -31,5 +19,8 @@ Fast File Initialization:-
3119
Lock Pages in Memory:-
3220
Collation:-
3321

22+
Power Mode :-
23+
SQL Server File & Agent History:-
24+
3425

3526

‎Planning-And-Installation/Installation-Client-Form.sql

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ SQL Server Service Packs:-
1313

1414
Components to Install:-
1515
---------------------
16-
Collation:- __________________________
16+
Collation:- ____________DEFAULT______________
1717

1818
Instance Features:-
1919
Database Engine Service:- ___________X_______________
@@ -32,13 +32,19 @@ Shared Features:-
3232

3333

3434
User/Groups that should be added as SysAdmins:-
35-
______________________Lab\facebook________________________________________________________
35+
______________________Lab\facebook______________________________________________________
3636
______________________________________________________________________________
3737

3838

39+
What is expected growth of databases in One Year:- ___________________1 tb__________________
40+
TempDb Initial Size = 20% of 1tb = 200 gb
41+
TempDb Autogrowth = 1/20th of Intial Size = 10 gb
42+
43+
3944
-- -----------------------------------------------------------------------
4045
-- -----------------------------------------------------------------------
4146
Application Details:-
47+
4248
-------------------
4349
Environment:-
4450
Dev/QA/UAT/Prod: _________________________Prod_______________________________

‎SQL Jobs/Tricks.sql

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
1) Log To file - Dynamic options
2+
-- https://docs.microsoft.com/en-us/sql/ssms/agent/use-tokens-in-job-steps?view=sql-server-ver15
23
F:\mssqldata\Backup\JobLogs\DatabaseBackup_FULL_$(ESCAPE_SQUOTE(JOBID))_$(ESCAPE_SQUOTE(STEPID))_$(ESCAPE_SQUOTE(STRTDT))_$(ESCAPE_SQUOTE(STRTTM)).txt
34

4-
J:\MSSQLData\Logs\DBA - Replication Distribution Agent Check_$(ESCAPE_SQUOTE(STRTDT))_$(ESCAPE_SQUOTE(STRTTM)).txt
5+
J:\MSSQLData\Logs\DBA - Replication Distribution Agent Check_$(ESCAPE_SQUOTE(STRTDT))_$(ESCAPE_SQUOTE(STRTTM)).txt
6+
7+
2) Reporting and alerting on job failure in SQL Server
8+
https://www.sqlshack.com/reporting-and-alerting-on-job-failure-in-sql-server/
9+

‎Space Issues/SQLQuery2.sql

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
create table #TableSize (
2+
Name varchar(255),
3+
[rows] int,
4+
reserved varchar(255),
5+
data varchar(255),
6+
index_size varchar(255),
7+
unused varchar(255))
8+
create table #ConvertedSizes (
9+
Name varchar(255),
10+
[rows] int,
11+
reservedKb int,
12+
dataKb int,
13+
reservedIndexSize int,
14+
reservedUnused int)
15+
16+
EXEC sp_MSforeachtable @command1="insert into #TableSize
17+
EXEC sp_spaceused '?'"
18+
insert into #ConvertedSizes (Name, [rows], reservedKb, dataKb, reservedIndexSize, reservedUnused)
19+
select name, [rows],
20+
SUBSTRING(reserved, 0, LEN(reserved)-2),
21+
SUBSTRING(data, 0, LEN(data)-2),
22+
SUBSTRING(index_size, 0, LEN(index_size)-2),
23+
SUBSTRING(unused, 0, LEN(unused)-2)
24+
from #TableSize
25+
26+
select * from #ConvertedSizes
27+
order by reservedKb desc
28+
29+
drop table #TableSize
30+
drop table #ConvertedSizes

‎Space Issues/Space Issues.ssmssqlproj

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<Items>
44
<LogicalFolder Name="Connections" Type="2" Sorted="true">
55
<Items>
6-
<ConnectionNode Name="(local):CORPORATE\adwivedi">
6+
<ConnectionNode Name="(local):MSI\ajayd">
77
<Created>2019年09月20日T17:21:31.5828346+05:30</Created>
88
<Type>SQL</Type>
99
<Server>(local)</Server>
@@ -15,7 +15,7 @@
1515
<ConnectionProtocol>NotSpecified</ConnectionProtocol>
1616
<ApplicationName>Microsoft SQL Server Management Studio - Query</ApplicationName>
1717
</ConnectionNode>
18-
<ConnectionNode Name="LOCALHOST:CORPORATE\adwivedi">
18+
<ConnectionNode Name="LOCALHOST:MSI\ajayd">
1919
<Created>2020年01月27日T12:35:23.8326405+05:30</Created>
2020
<Type>SQL</Type>
2121
<Server>LOCALHOST</Server>
@@ -79,6 +79,12 @@
7979
<AssociatedConnUserName />
8080
<FullPath>Shrink Log Files.sql</FullPath>
8181
</FileNode>
82+
<FileNode Name="SQLQuery2.sql">
83+
<AssociatedConnectionMoniker />
84+
<AssociatedConnSrvName />
85+
<AssociatedConnUserName />
86+
<FullPath>SQLQuery2.sql</FullPath>
87+
</FileNode>
8288
</Items>
8389
</LogicalFolder>
8490
<LogicalFolder Name="Miscellaneous" Type="3" Sorted="true">

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /