kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

SQLServer查询执行过的SQL记录

https://blog.csdn.net/zbc415766331/article/details/113924487

说明:仅支持sql server2008及以上版本

通过下面的SQL语句可以查看Sqlserver执行的SQL记录,常用于SQL优化及辅助查找数据更新相关功能bug。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT TOP 1000
	ST.text AS '执行的SQL语句',
	QS.execution_count AS '执行次数',
	QS.total_elapsed_time AS '耗时',
	QS.total_logical_reads AS '逻辑读取次数',
	QS.total_logical_writes AS '逻辑写入次数',
	QS.total_physical_reads AS '物理读取次数',
	QS.creation_time AS '执行时间' ,  
	QS.*
FROM sys.dm_exec_query_stats QS
	CROSS APPLY
sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE  QS.creation_time >'2020-08-18'
ORDER BY
	QS.total_elapsed_time DESC

关键SQL信息查询测试

1
2
3
4
5
6
7
8
9
10
SELECT TOP 1000
	ST.text AS '执行的SQL语句',
	QS.total_elapsed_time AS '耗时',
	QS.creation_time AS '执行时间' 
FROM sys.dm_exec_query_stats QS
	CROSS APPLY
sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE QS.creation_time >'2021-02-18 15:00' AND QS.creation_time <'2021-02-18 23:00'
ORDER BY
	QS.total_elapsed_time DESC

sp_addlinkedserver 远程数据库链接

https://www.cnblogs.com/qi123/p/9061008.html

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
--查看当前链接情况:
select * from sys.servers;

--使用 sp_helpserver 来显示可用的服务器
exec sp_helpserver

--删除已经存在的某个链接
exec sp_droplinkedsrvlogin 服务器别名,Null
exec sp_dropserver 服务器别名

--使用sp_addlinkedserver来增加链接
exec sp_addlinkedserver
@server='192.168.2.66',  --被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.2.66'  --要访问的服务器

--使用sp_addlinkedsrvlogin 来增加用户登录链接
exec sp_addlinkedsrvlogin
'192.168.2.66', --被访问的服务器别名(如果上面sp_addlinkedserver中使用别名JOY,则这里也是JOY)
'false', NULL,
'sa', --帐号
'test123' --密码

使用举例(访问目标服务器上的数据库Music,查看其中表test的内容):

如果建立链接时的别名是目标服务器IP,即192.168.2.66 则:
select * from [192.168.2.66].[Music].dbo.test

如果建立链接时的别名是JOY, 则:
select * from [JOY].[Music].dbo.test
1
2
3
4
5
6
7
8
9
可能会遇到的问题:
exec sp_dropserver 'JOY'执行失败,

报错信息:仍有对服务器 'JOY' 的远程登录或链接登录。

解决方法:
exec sp_droplinkedsrvlogin 'JOY',null

exec sp_dropserver 'JOY'
1
2
3
4
5
6
7
8
9
10
11
12
select * from sys.servers;

exec sp_helpserver

exec sp_dropserver 'QPAccountsDBLink'

EXEC sp_addlinkedserver
@server='XFGameWebLink', --被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='XFGameWebLink',
@provider='SQLOLEDB',
@datasrc='127.0.0.1',    --要访问的服务器
@catalog='QPWXFGame'
1
2
3
EXEC sp_addlinkedserver @server='NC',@srvproduct='',@provider='SQLOLEDB',@datasrc='192.168.1.1'

EXEC sp_addlinkedsrvlogin 'NC','false',NULL,'lx','xxx'

Linux查看系统硬件制造商、型号和序列号

https://zhuanlan.zhihu.com/p/42403181

方法一:使用 dmidecode 命令

dmidecode 是一个读取电脑 DMI(桌面管理接口(Desktop Management Interface))表内容并且以人类可读的格式显示系统硬件信息的工具。(也有人说是读取 SMBIOS – 系统管理 BIOS(System Management BIOS))

这个表包含系统硬件组件的说明,也包含如序列号、制造商、发布日期以及 BIOS 修订版本号等其它有用的信息。

DMI 表不仅描述了当前的系统构成,还可以报告可能的升级信息(比如可以支持的最快的 CPU 或者最大的内存容量)。

这将有助于分析你的硬件兼容性,比如是否支持最新版本的程序。

1
# dmidecode -t system

方法二:使用 inxi 命令

inxi 是 Linux 上查看硬件信息的一个灵巧的小工具,它提供了大量的选项来获取所有硬件信息,这是我在现有的其它 Linux 工具集里所没见到过的。它是从 locsmif 编写的古老的但至今看来都异常灵活的 infobash fork 出来的。

inxi 是一个可以快速显示系统硬件、CPU、驱动、Xorg、桌面、内核、GCC 版本、进程、内存使用以及大量其它有用信息的脚本,也可以用来做技术支持和调试工具。

1
2
3
# inxi -M
Machine: Device: server System: IBM product: N/A v: 0B serial: MK2RL11
 Mobo: IBM model: 00Y8494 serial: 37M17D UEFI: IBM v: -[VVE134MUS-1.50]- date: 08/30/2013

方法三:使用 lshw 命令

lshw (指硬件监听器(Hardware Lister))是一个小巧灵活的工具,可以生成如内存配置、固件版本、主板配置、CPU 版本和速度、缓存配置、USB、网卡、显卡、多媒体、打印机以及总线速度等机器中各种硬件组件的详细报告。

它通过读取 /proc 目录下各种文件的内容和 DMI 表来生成硬件信息。

lshw 必须以超级用户的权限运行来检测完整的硬件信息,否则它只汇报部分信息。lshw 里有一个叫做 class 的特殊选项,它可以以详细的模式显示特定的硬件信息。

1
2
3
4
5
6
7
8
9
10
# lshw -C system
enal-dbo01t
 description: Blade
 product: System x2530 M4: -[1214AC1]-
 vendor: IBM
 version: 0B
 serial: MK2RL11
 width: 64 bits
 capabilities: smbios-2.7 dmi-2.7 vsyscall32
 configuration: boot=normal chassis=enclosure family=System X uuid=762A99BF-6916-450F-80A6-B2E9E78FC9A1

方法四:使用 /sys 文件系统

内核在 /sys 目录下的文件中公开了一些 DMI 信息。因此,我们可以通过如下方式运行 grep 命令来轻易地获取机器类型。

1
# grep "" /sys/class/dmi/id/[pbs]*

或者,可以使用 cat 命令仅打印出特定的详细信息。

1
2
3
4
5
6
7
8
9
10
11
# cat /sys/class/dmi/id/board_vendor
IBM

# cat /sys/class/dmi/id/product_name
System x2530 M4: -[1214AC1]-

# cat /sys/class/dmi/id/product_serial
MK2RL11

# cat /sys/class/dmi/id/bios_version
-[VVE134MUS-1.50]-

方法五:使用 dmesg 命令

dmesg 命令是在 Linux 上 syslogd 或 klogd 启动前用来记录内核消息(启动阶段的消息)的。它通过读取内核的环形缓冲区来获取数据。在排查问题或只是尝试获取系统硬件信息时,dmesg 非常有用。

1
2
# dmesg | grep -i DMI
DMI: System x2530 M4: -[1214AC1]-/00Y8494, BIOS -[VVE134MUS-1.50]- 08/30/2013

方法六:使用 hwinfo 命令

hwinfo(硬件信息(hardware information))是另一个很棒的工具,用于检测当前系统存的硬件,并以人类可读的方式显示各种硬件模块的详细信息。

它报告关于 CPU、内存、键盘、鼠标、显卡、声卡、存储、网络接口、磁盘、分区、BIOS 以及桥接器等信息。它可以比其它像 lshw、dmidecode 或 inxi 等工具显示更为详细的信息。

hwinfo 使用 libhd 库 libhd.so 来收集系统上的硬件信息。该工具是为 openSuse 特别设计的,后来其它发行版也将它包含在其官方仓库中。

1
2
3
# hwinfo | egrep "system.hardware.vendor|system.hardware.product"
 system.hardware.vendor = 'IBM'
 system.hardware.product = 'System x2530 M4: -[1214AC1]-'