`

db sqlserver / sqlserver2005

阅读更多

 

 

http://blog.163.com/xiaosanshaoli@126/blog/static/29792163200852525719474/

SQLServer的分页依靠的是top这个属性。

1.分页方案一:(利用Not In和SELECT TOP分页)

SELECT TOP 页大小 *
 FROM TestTable
 WHERE (ID NOT IN
           (SELECT TOP 页大小*页数 id
          FROM 表
          ORDER BY id))
 ORDER BY ID

2.分页方案二:(利用ID大于多少和SELECT TOP分页)

SELECT TOP 页大小 *
 FROM TestTable
 WHERE (ID >
           (SELECT MAX(id)
          FROM (SELECT TOP 页大小*页数 id
                  FROM 表
                  ORDER BY id) AS T))
 ORDER BY ID

 

常用的是方案1.这个不需要多说!

方案2有局限性。

 

iecool_sql2000

http://download.iecool.com/iexxdownxisdj3/fuwuqi/iecool_sql2000.rar

 

(2)MicroSoft SQL Server 2000: 
http://kop.iteye.com/blog/253440


select top 5 * from 

  (select top 15 * from TableName order by id asc) Table_别名 

order by id desc 

-------------------------------------------------------------------- 

SELECT * FROM 

        (SELECT TOP m * FROM 

            (SELECT TOP n * FROM table_name) AS A 

         ORDER BY column_name DESC 

         ) B 

    ORDER BY column_name 
  获得的结果集数据为第n-m+1行到第n行。 
  对整个过程的解释:首先按照升序得到前n行的结果集A,然后按照降序从A中得到后m行的结果集B,最后按照升序对B进行重新排序,返回结果集。比如: 

  SELECT * FROM 

        (SELECT TOP 5 * FROM 

            (SELECT TOP 10 * FROM table_name) AS A 

         ORDER BY column_name DESC 

         ) B 

  的意思就是返回包含第6行到第10行的数据结果集。 

 

 

 
http://user.qzone.qq.com/170475387/blog/142
Microsoft SQL Server 2005 Enterprise Evaluation Edition: IT 专业人员试用体验版 
注册页面 
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6931fa7f-c094-49a2-a050-2d07993566ec 
X86 DVD 镜像 SQLEVAL_CHS.ISO 
http://go.microsoft.com/fwlink/?LinkId=59061 
自解压缩可执行文件:SQLEVAL_CHS.EXE 
http://go.microsoft.com/fwlink/?LinkId=59056 
Microsoft SQL Server 2005 Express Edition 学习版 
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=220549b5-0b07-4448-8848-dcc397514b41 
Microsoft SQL Server 2005 Express Edition Service Pack 2 SP2版 
http://www.microsoft.com/downloads/details.aspx?familyid=31711D5D-725C-4AFA-9D65-E4465CDFF1E7&displaylang=zh-cn 
Microsoft SQL Server Management Studio Express Service Pack 2 图形管理工具 
http://www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=zh-cn 
Microsoft SQL Server 2005 Service Pack 2 update for:Enterprise,EnterpriseEvaluation,Developer,Standard, Workgroup 
http://www.microsoft.com/downloads/details.aspx?familyid=D07219B2-1E23-49C8-8F0C-63FA18F26D3A&displaylang=zh-cn 
         
******************************************************************
sqlserver2000在安装过程中常遇到的问题 
(一)挂起操作 
  在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法: 
  到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 
  删除PendingFileRenameOperations的选项。 
(二)XP下究竟装哪个版本 
  我试过在XP下装“企业版”,“标准版”都装不上只能装一下“客户端”,不过“个人开发版”是可以装上的 
sql server 表双主键设置 
双主键即联合主键:Shift选中两列字段,设置主键即可。 
    
解决sql server 右下状态栏图标出不来的问题: 
关掉sqlmangr.exe的进程,再重启sql server“服务管理器”即可   
ACCESS 基本应用 
如果要将字段添加到多对一关系中的"自动编号"字段,则该字段必须为长整型,大小为8.     
SQL Server 2000 
*.mdf 主数据 
*.ndf  次数据 
*.ldf   日志 
一个服务器上最多可创建32767个数据库 
Northwind 示例数据库虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易。 
pubs           示例数据库以一个图书出版公司为模型 
Sql server 2005 .bat文件启动/关闭方法 
net strat sqlserver.bat 
内容: 
net start SQLServerAgent 
net start MSSQLServerOLAPService 
net start sqlBrowser 
net start msftesql 
net start MsDtsServer 
net start SQLWriter 
Net start mssqlserver 
net stop sqlserver.bat 
内容: 

net stop msSqlServer 
net stop MSSQLServerADHelper 
net stop SQLServerAgent 
net stop MSSQLServerOLAPService 
net stop sqlBrowser 
net stop msftesql 
net stop MsDtsServer 
net stop SQLWriter 


更改sa帐户密码为sqlserver,可另存为password.sql供以后执行
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'sqlserver'

 

数据库解压密码    Yor9OQG7ycmG&|fuxiangmu.com|taiyouyisi.com|!4FL

24.5GB 

QQ数据库.7z.001 4.38G
QQ数据库.7z.002 4.38G
QQ数据库.7z.003 4.38G
QQ数据库.7z.004 4.38G
QQ数据库.7z.005 4.38G
QQ数据库.7z.006 2.66G

C:\Users\Administrator\Desktop\QunData>ls -la

total 16685618

drwxrwxrwx   1 user     group           0 Dec  2 11:29 .

drwxrwxrwx   1 user     group           0 Dec  2 10:52 ..

-rw-rw-rw-   1 user     group    2542600192 Dec 26  2012 GroupData10_Data.MDF

-rw-rw-rw-   1 user     group    125698048 Dec 26  2012 GroupData11_Data.MDF

-rw-rw-rw-   1 user     group    857210880 Jan  7  2013 GroupData1_Data.MDF

-rw-rw-rw-   1 user     group    1405273046 Dec 26  2012 GroupData2_Data.MDF

-rw-rw-rw-   1 user     group    470351872 Dec 26  2012 GroupData3_Data.MDF

-rw-rw-rw-   1 user     group    1038286848 Dec 26  2012 GroupData4_Data.MDF

-rw-rw-rw-   1 user     group    1314258944 Dec 26  2012 GroupData5_Data.MDF

-rw-rw-rw-   1 user     group    880017408 Dec 26  2012 GroupData6_Data.MDF

-rw-rw-rw-   1 user     group    1448148992 Dec 26  2012 GroupData7_Data.MDF

-rw-rw-rw-   1 user     group    402587648 Dec 26  2012 GroupData8_Data.MDF

-rw-rw-rw-   1 user     group    1726414848 Dec 26  2012 GroupData9_Data.MDF

-rw-rw-rw-   1 user     group    515964928 Dec 26  2012 QunInfo10_Data.MDF

-rw-rw-rw-   1 user     group    755499008 Dec 26  2012 QunInfo11_Data.MDF

-rw-rw-rw-   1 user     group    831062016 Jan  7  2013 QunInfo1_Data.MDF

-rw-rw-rw-   1 user     group    831062016 Jan  7  2013 QunInfo2_Data.MDF

-rw-rw-rw-   1 user     group    831062016 Jan  7  2013 QunInfo3_Data.MDF

-rw-rw-rw-   1 user     group    1005584384 Jan  7  2013 QunInfo4_Data.MDF

-rw-rw-rw-   1 user     group    1005584384 Jan  7  2013 QunInfo5_Data.MDF

-rw-rw-rw-   1 user     group    1005584384 Jan  7  2013 QunInfo6_Data.MDF

-rw-rw-rw-   1 user     group    1005584384 Jan  7  2013 QunInfo7_Data.MDF

-rw-rw-rw-   1 user     group    914161664 Dec 26  2012 QunInfo8_Data.MDF

-rw-rw-rw-   1 user     group    469041152 Dec 26  2012 QunInfo9_Data.MDF

 

SQL Server数据库

EXEC sp_attach_db "QunInfo1", "D:\QQ数据库\QQ数据库\QunData\QunInfo1_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo1_Log.LDF"

EXEC sp_attach_db "QunInfo2", "D:\QQ数据库\QQ数据库\QunData\QunInfo2_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo2_Log.LDF"

EXEC sp_attach_db "QunInfo3", "D:\QQ数据库\QQ数据库\QunData\QunInfo3_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo3_Log.LDF"

EXEC sp_attach_db "QunInfo4", "D:\QQ数据库\QQ数据库\QunData\QunInfo4_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo4_Log.LDF"

EXEC sp_attach_db "QunInfo5", "D:\QQ数据库\QQ数据库\QunData\QunInfo5_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo5_Log.LDF"

EXEC sp_attach_db "QunInfo6", "D:\QQ数据库\QQ数据库\QunData\QunInfo6_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo6_Log.LDF"

EXEC sp_attach_db "QunInfo7", "D:\QQ数据库\QQ数据库\QunData\QunInfo7_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo7_Log.LDF"

EXEC sp_attach_db "QunInfo8", "D:\QQ数据库\QQ数据库\QunData\QunInfo8_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo8_Log.LDF"

EXEC sp_attach_db "QunInfo9", "D:\QQ数据库\QQ数据库\QunData\QunInfo9_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo9_Log.LDF"

EXEC sp_attach_db "QunInfo10", "D:\QQ数据库\QQ数据库\QunData\QunInfo10_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo10_Log.LDF"

EXEC sp_attach_db "QunInfo11", "D:\QQ数据库\QQ数据库\QunData\QunInfo11_Data.MDF","D:\QQ数据库\QQ数据库\QunData\QunInfo11_Log.LDF"

EXEC sp_attach_db "GroupData1", "D:\QQ数据库\QQ数据库\QunData\GroupData1_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData1_Log.LDF"

EXEC sp_attach_db "GroupData2", "D:\QQ数据库\QQ数据库\QunData\GroupData2_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData2_Log.LDF"

EXEC sp_attach_db "GroupData3", "D:\QQ数据库\QQ数据库\QunData\GroupData3_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData3_Log.LDF"

EXEC sp_attach_db "GroupData4", "D:\QQ数据库\QQ数据库\QunData\GroupData4_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData4_Log.LDF"

EXEC sp_attach_db "GroupData5", "D:\QQ数据库\QQ数据库\QunData\GroupData5_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData5_Log.LDF"

EXEC sp_attach_db "GroupData6", "D:\QQ数据库\QQ数据库\QunData\GroupData6_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData6_Log.LDF"

EXEC sp_attach_db "GroupData7", "D:\QQ数据库\QQ数据库\QunData\GroupData7_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData7_Log.LDF"

EXEC sp_attach_db "GroupData8", "D:\QQ数据库\QQ数据库\QunData\GroupData8_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData8_Log.LDF"

EXEC sp_attach_db "GroupData9", "D:\QQ数据库\QQ数据库\QunData\GroupData9_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData9_Log.LDF"

EXEC sp_attach_db "GroupData10", "D:\QQ数据库\QQ数据库\QunData\GroupData10_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData10_Log.LDF"

EXEC sp_attach_db "GroupData11", "D:\QQ数据库\QQ数据库\QunData\GroupData11_Data.MDF","D:\QQ数据库\QQ数据库\QunData\GroupData11_Log.LDF"

如何附加和分离SQL Server数据库

打开 开始-->程序-->Microsoft SQL Server-->查询分析器

附加群号数据库:

EXEC sp_attach_db "QunInfo1", "G:\数据库所在目录\QunData\QunInfo1_Data.MDF","G:\数据库所在目录\QunData\QunInfo1_Log.LDF"

EXEC sp_attach_db "QunInfo2", "G:\数据库所在目录\QunData\QunInfo2_Data.MDF","G:\数据库所在目录\QunData\QunInfo2_Log.LDF"

EXEC sp_attach_db "QunInfo3", "G:\数据库所在目录\QunData\QunInfo3_Data.MDF","G:\数据库所在目录\QunData\QunInfo3_Log.LDF"

EXEC sp_attach_db "QunInfo4", "G:\数据库所在目录\QunData\QunInfo4_Data.MDF","G:\数据库所在目录\QunData\QunInfo4_Log.LDF"

EXEC sp_attach_db "QunInfo5", "G:\数据库所在目录\QunData\QunInfo5_Data.MDF","G:\数据库所在目录\QunData\QunInfo5_Log.LDF"

EXEC sp_attach_db "QunInfo6", "G:\数据库所在目录\QunData\QunInfo6_Data.MDF","G:\数据库所在目录\QunData\QunInfo6_Log.LDF"

EXEC sp_attach_db "QunInfo7", "G:\数据库所在目录\QunData\QunInfo7_Data.MDF","G:\数据库所在目录\QunData\QunInfo7_Log.LDF"

EXEC sp_attach_db "QunInfo8", "G:\数据库所在目录\QunData\QunInfo8_Data.MDF","G:\数据库所在目录\QunData\QunInfo8_Log.LDF"

EXEC sp_attach_db "QunInfo9", "G:\数据库所在目录\QunData\QunInfo9_Data.MDF","G:\数据库所在目录\QunData\QunInfo9_Log.LDF"

EXEC sp_attach_db "QunInfo10", "G:\数据库所在目录\QunData\QunInfo10_Data.MDF","G:\数据库所在目录\QunData\QunInfo10_Log.LDF"

EXEC sp_attach_db "QunInfo11", "G:\数据库所在目录\QunData\QunInfo11_Data.MDF","G:\数据库所在目录\QunData\QunInfo11_Log.LDF"

附加群成员数据库:

EXEC sp_attach_db "GroupData1", "G:\数据库所在目录\QunData\GroupData1_Data.MDF","G:\数据库所在目录\QunData\GroupData1_Log.LDF"

EXEC sp_attach_db "GroupData2", "G:\数据库所在目录\QunData\GroupData2_Data.MDF","G:\数据库所在目录\QunData\GroupData2_Log.LDF"

EXEC sp_attach_db "GroupData3", "G:\数据库所在目录\QunData\GroupData3_Data.MDF","G:\数据库所在目录\QunData\GroupData3_Log.LDF"

EXEC sp_attach_db "GroupData4", "G:\数据库所在目录\QunData\GroupData4_Data.MDF","G:\数据库所在目录\QunData\GroupData4_Log.LDF"

EXEC sp_attach_db "GroupData5", "G:\数据库所在目录\QunData\GroupData5_Data.MDF","G:\数据库所在目录\QunData\GroupData5_Log.LDF"

EXEC sp_attach_db "GroupData6", "G:\数据库所在目录\QunData\GroupData6_Data.MDF","G:\数据库所在目录\QunData\GroupData6_Log.LDF"

EXEC sp_attach_db "GroupData7", "G:\数据库所在目录\QunData\GroupData7_Data.MDF","G:\数据库所在目录\QunData\GroupData7_Log.LDF"

EXEC sp_attach_db "GroupData8", "G:\数据库所在目录\QunData\GroupData8_Data.MDF","G:\数据库所在目录\QunData\GroupData8_Log.LDF"

EXEC sp_attach_db "GroupData9", "G:\数据库所在目录\QunData\GroupData9_Data.MDF","G:\数据库所在目录\QunData\GroupData9_Log.LDF"

EXEC sp_attach_db "GroupData10", "G:\数据库所在目录\QunData\GroupData10_Data.MDF","G:\数据库所在目录\QunData\GroupData10_Log.LDF"

EXEC sp_attach_db "GroupData11", "G:\数据库所在目录\QunData\GroupData11_Data.MDF","G:\数据库所在目录\QunData\GroupData11_Log.LDF"

拆分数据库(不会删除数据库文件):

拆分群号数据库

exec sp_detach_db QunInfo1, true

exec sp_detach_db QunInfo2, true

exec sp_detach_db QunInfo3, true

exec sp_detach_db QunInfo4, true

exec sp_detach_db QunInfo5, true

exec sp_detach_db QunInfo6, true

exec sp_detach_db QunInfo7, true

exec sp_detach_db QunInfo8, true

exec sp_detach_db QunInfo9, true

exec sp_detach_db QunInfo10, true

exec sp_detach_db QunInfo11, true

拆分群成员数据库

exec sp_detach_db GroupData1, true

exec sp_detach_db GroupData2, true

exec sp_detach_db GroupData3, true

exec sp_detach_db GroupData4, true

exec sp_detach_db GroupData5, true

exec sp_detach_db GroupData6, true

exec sp_detach_db GroupData7, true

exec sp_detach_db GroupData8, true

exec sp_detach_db GroupData9, true

exec sp_detach_db GroupData10, true

exec sp_detach_db GroupData11, true

 

 

 

 

 

 

获取windows所有的性能计数器

C:\Documents and Settings\Administrator>perfmon 
C:\Documents and Settings\Administrator>perfmon.msc

C:\Users\Administrator>typeperf 
缺少参数: <counter [counter ...]>
缺少参数: -cf <filename>
缺少参数: -q [object]
缺少参数: -qx [object]

命令的语法不正确。

C:\Users\Administrator>typeperf  /? 

Microsoft ® TypePerf.exe (6.1.7600.16385)

Typeperf 将性能数据写入命令窗口或日志文件。要停止 Typeperf,请按 CTRL+C.

用法:
typeperf { <counter [counter ...]> | -cf <filename> | -q [object]
                                | -qx [object] } [options]

参数:
  <counter [counter ...]>       要监视的性能计数器。

选项:
  -?                            显示跟上下文相关的帮助。
  -f <CSV|TSV|BIN|SQL>          输出文件格式。默认值是 CSV。
  -cf <filename>                含有监视的性能计数器的文件,一个计数器一行。
  -si <[[hh:]mm:]ss>            示例间的时间。默认值是 1 秒。
  -o <filename>                 输出文件或 SQL 数据库的路径。默认值为 STDOUT。
  -q [object]                   列出已安装的计数器(无实例)。要列出某个对象的
                                计数器,包括对象名,如 Processor。
  -qx [object]                  列出已安装的计数器(带实例)。要列出某个对象的
                                计数器,包括对象名,如 Processor。
  -sc <samples>                 要收集的示例数量。默认值为,在 CTRL+C 之前都
                                进行采样。
  -config <filename>            含有命令选项的设置文件。
  -s <computer_name>            在计数器路径中没有指定服务器的情况下要监视的
                                服务器。
  -y                            不用提示对所有问题都回答 yes。

注意:
  Counter 是性能计数器的全名,格式为
  "\\<Computer>\<Object>(<Instance>)\<Counter>";
  例如 "\\Server1\Processor(0)\% User Time"。

示例:
  typeperf "\Processor(_Total)\% Processor Time"
  typeperf -cf counters.txt -si 5 -sc 50 -f TSV -o domain2.tsv
  typeperf -qx PhysicalDisk -o counters.txt

http://niyunjiu.iteye.com/blog/322879

C:\Users\07121038> typeperf –qx

http://support.microsoft.com/kb/934809

C:\Users\07121038> typeperf-f CSV-cf counters.txt-si 15-sc 5760-o OutputFile -y

 

利用typeperf工具收集SQL Server性能数据

http://xiaoer-1982.iteye.com/blog/497786

一.利用 TypePerf.exe 命令行工具把 Windows 操作系统的性能计数器数据记录到数据库中 <?XML:NAMESPACE PREFIX = O />

 

可以在作业中建立以下脚本

1. 启用 xp_cmdshell

-- 默认情况下 ,sql server2005 安装完后 ,xp_cmdshell 是禁用的 ( 可能是安全考虑 ), 如果要使用它 , 可按以下步骤

 

-- 允许配置高级选项

EXEC sp_configure 'show advanced options' , 1

GO

-- 重新配置

RECONFIGURE

GO

-- 启用 xp_cmdshell

EXEC sp_configure 'xp_cmdshell' , 1

GO

-- 重新配置

RECONFIGURE

GO

 

2. 定时开启, 开始记录性能计数器日志

-- 实现的功能:将 “MyCounters.txt” 文件中列出的计数器,按照每秒钟的时间间隔,记录到 SQL 数据库中,"SQL:SystemLog!TestSystemLog" 为 ODBC 数据源建立的系统 DSN

EXEC xp_cmdshell 'typeperf -cf c:\MyCounters.txt -si 5 -f SQL -o SQL:SystemLog!TestSystemLog'

 

--"MyCounters.txt" 可以利用下面的命令在 CMD 命令窗口中执行后生成

TYPEPERF - qx "Processor" >> c: \MyCounters. txt

 

3. 定时关闭

-- 结束 typeperf.exe 的进程

EXEC xp_cmdshell 'tskill typeperf'

 

4. 关闭 xp_cmdshell

-- 用完后 , 要记得将 xp_cmdshell 禁用 ( 出于安全考虑 )

-- 允许配置高级选项

EXEC sp_configure 'show advanced options' , 1

GO

-- 重新配置

RECONFIGURE

GO

-- 禁用 xp_cmdshell

EXEC sp_configure 'xp_cmdshell' , 0

GO

-- 重新配置

RECONFIGURE

GO

 

5. 利用数据库中记录的日志分析性能数据

 

二.带来的好处:

1. 可以根据计划定时抓取 服务器性能数据 包括 CPU 、内存和磁盘利用率以及 SQL Server 特定数据。为数据库服务器的性能分析提供帮助。

 

2. 可以根据数据库中记录的日志结合 Reporting Service 绘制性能分析的报表。

 

 

3. 可以定制作业实现自动化

 

 

三.带来的影响:

1. 会增加服务器的负载,在测试时观察了一下这个命令的开销,基本上启动后 8M 左右的内存运行,开销比较小

 

另外:如果考虑实施的话,可以新建一个数据库(专门用于监控服务器性能等的表),便于维护和管理

TypePerf收集服务器性能

http://yangzhiyong77.iteye.com/blog/1413446

TypePerf.exe这个命令行工具可以收集服务器性能数据

--1.查找和数据库JinRiDomesticOrder相关的性能参数

TYPEPERF -qx "SQLServer:Databases" | FIND "testr"


--2.查找和数据库JinRiDomesticOrder相关的性能参数并导出

TYPEPERF -qx "SQLServer:Databases" | FIND "test" >>s:\perf.txt

--3.perf.txt这个文本文件中读取计数器信息,将技术器数值写入到perf.csv文件中,每隔10秒钟执行一次,共执行600次

TYPEPERF -f CSV -o s:\perf.csv -si 10 -cf s:\perf.txt -sc 600

C:\Users\07121038>typeperf /?

  Counter 是性能计数器的全名,格式为
  "\\<Computer>\<Object>(<Instance>)\<Counter>";
  例如 "\\Server1\Processor(0)\% User Time"。

示例:
  typeperf "\Processor(_Total)\% Processor Time"
  typeperf -cf counters.txt -si 5 -sc 50 -f TSV -o domain2.tsv
  typeperf -qx PhysicalDisk -o counters.txt

 

 

end

 

 

 

end

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics