日度归档:2019年10月9日

mssql sqlserver 如何让一个字段值随着时间自动变化呢?


摘要:
下文讲述sqlserver中如何设置一个随着时间自动变化的字段,如下所示:
实验环境:sql server 2008 R2


今天接到同事的一个需求,例:
需要在一个数据表中,实时显示年龄信息,刚开始收到这个需求时,我想制作一个定时任务,实时去更新表中的字段值,但是这样做会消耗大量的系统性能,通过多方查阅资料,
我们发现可以使用计算列,轻松实现这个需求,如下例所示:

 
create table [maomao365.com]
(keyId int identity,
 name  nvarchar(10),
 birthDate datetime,
 age as datediff(year,birthDate,getdate()) 
 )
 go

 ---插入基础数据
 insert into [maomao365.com]
 (name,birthDate) values
 (N'张三','1985-11-10'),
 (N'berry','1981-11-10'),
 (N'wallace','1979-11-10'),
 (N'alex.lee','2001-11-10')
 go

 select * from [maomao365.com] 

 go
 truncate table [maomao365.com]
 drop     table [maomao365.com]   

mssql_sqlserver_随着时间变化列设置方法分享

mssql_sqlserver_随着时间变化列设置方法分享


相关阅读:
mssql sqlserver 创建计算列(字段)的方法分享

mssql sqlserver 获取数据库引擎中IO占用最大的数据库及文件的方法分享


摘要:
下文讲述sqlserver中数据库引擎IO占用最大的数据库,如下所示
实验环境:sql server 2008 R2


在一些ERP中,常常有同事反馈,****系统又慢啦,此时百分之99的情况发生在IO的占用上,此时我们首先要做的是找出IO占用大的数据库及文件,然后从硬件或软件上对其进行解决,使其占用变小。
常见的IO性能指标参数如下:
读取次数
写入次数
等待次数

实现思路:
通过查阅系统视图sys.dm_io_virtual_file_stats获取IO占用最大的数据库及数据库文件

 ​
select DB_NAME(database_id)  as [数据库名称],
       file_name(file_id) as [文件名称], 
       size_on_disk_bytes as [文件实际大小byte],
        

       io_stall_read_ms,  --用户等待文件中发出读取所用的总时间
       io_stall_write_ms, --用户等待在该文件中完成写入所用的总时间
       io_stall,          --用户等待在文件中完成 I/O 操作所用的总时间
 
       num_of_reads,         --在该文件中读取的次数
       num_of_bytes_read,    --在该文件中读取的总字节数
       
       num_of_writes,        --在该文件中写入的次数
       num_of_bytes_written  --在该文件中写入的总字节数
       
from sys.dm_io_virtual_file_stats(null,  --数据库id
                                  null   --文件id
                                 ) 
order by io_stall desc

MSSQL sqlserver之系统视图sys.dm_io_virtual_file_stats的简介说明


摘要:
下文讲述sqlserver系统视图sys.dm_io_virtual_file_stats简介说明,如下所示:
实验环境:sql server 2008 R2



sys.dm_io_virtual_file_stats功能简介

sys.dm_io_virtual_file_stats的主要功能:返回数据文件及日志文件的I/O统计信息。

sys.dm_io_virtual_file_stats 语法说明:

sys.dm_io_virtual_file_stats (
{ database_id | NULL },
{ file_id | NULL }
)
—参数说明——-
database_id:数据库对象Id
此参数需为一个int类型的参数,当此参数输入NULL时,则返回sqlserver引擎中的所有数据库I/O信息
file_id:数据文件或日志文件的Id
此参数类型为int,当此参数输入NULL时,则显示数据库中的所有文件。’
———返回结果集说明——

返回列名称

返回列数据类型

返回列备注
database_name

sysname

数据库名称
database_id

smallint

数据库ID
file_id

smallint

文件ID
sample_ms

bigint

自从计算机启动以来的毫秒数
num_of_reads

bigint

对文件发出的读取次数
num_of_bytes_read

bigint

在此文件中读取的总字节数
io_stall_read_ms

bigint

用户等待文件中发出读取所用的总时间(毫秒)
num_of_writes

bigint

在该文件中写入的次数
num_of_bytes_written

bigint

写入文件的总字节数
io_stall_write_ms

bigint

用户等待在该文件中完成写入所用的总时间(毫秒)
io_stall

bigint

用户等待在文件中完成 I/O 操作所用的总时间(毫秒)
size_on_disk_bytes

bigint

该文件在磁盘上占用的字节数
file_handle

varbinary

用于此文件的 Windows 文件句柄
io_stall_queued_read_ms

bigint

io_stall_queued_write_ms

bigint

针对写的 IO 资源调控所引入的总 IO 延迟
pdw_node_id

int


sys.dm_io_virtual_file_stats举例应用

    ---获取数据库 databaseName中的fileId为2的文件的IO情况
    SELECT * FROM sys.dm_io_virtual_file_stats(DB_ID(N'databaseName'), 2);  
    -----或以下脚本----
    SELECT * FROM sys.dm_pdw_nodes_io_virtual_file_stats 
     WHERE database_name = 'databaseName' AND file_id = 2;
    GO

相关阅读:
mssql sqlserver FILE_IDEX 函数返回指定文件的文件ID