.net 杂项
vs 打印信息到输出窗口 :
System.Diagnostics.Debug.WriteLine("打印信息到输出窗口,但是只能在Debug版本运行,到了release版本中,Debug类的函数都会被忽略");
System.Diagnostics.Trace.WriteLine("打印信息到输出窗口,可以同时在Debug和release版本运行");
1、在mvc或者api中 ,从一个控制器调用另外一个控制器,可以使用 new V2Controller() { ActionContext = this.ActionContext }.Get(id) 实例化调用,这样能把上下文信息传递给Get 否则,在get中无法使用过滤器,无法使用上下文的部分对象
2、sql 2014 两千万数据的表 新建索引语句:
CREATE NONCLUSTERED INDEX index_name ON [log] (logdate desc)
WITH (STATISTICS_NORECOMPUTE =OFF,fillfactor=60)
填充因子设置为60 索引名称为 index_name 表明:[log] 字段名:logdate STATISTICS_NORECOMPUTE 非聚集索引
2.1 手动更新、删除执行sql语句,必须用事务
begin tran
delete [log] where id= 4332869 执行看影响行数
rollback tran 进行回滚
commit tran 进行提交
2.2 output 的用法
DELETE FROM TestTB OUTPUT deleted.* INTO @tempTable WHERE id > 4
--删除并将删除的数据保存到另外一张表中
在insert ,update ,delete 中均可以使用output关键词
3、sql server 中的计算列和修改计算列为持久化
create table orders
(
orderid int not null,
price money not null,
quantity int not null,
orderdate datetime not null,
total as price*quantity ,
total2 as Price * quantity persisted,
shipedate as dateadd (day,7,orderdate)
)
4、update 语句的联合表查询
update a set IsClash=1 from a left join [b] on a.Mobile=[b].Mobile and [b].PlaceNo=2018112901
where a.PlaceNo=2018112901 and [b].Id is not null
update UserTable set b+=b,c=#cz.c from #cz ,UserTable where UserTable.a=4 and UserTable.b=1 and #cz.userid=UserTable.UserID
包含索引
快照复制
有序GUID
数据库优化,
首先是分区,分表,分库
其次是读写分离
然后是分布式
接着采用分发订阅模式
最后是优化应用架构
如果io是瓶颈,可以采用高性能的SSD固态存储
文件用文件服务器 或者做文件同步
有存储服务器,划分好磁盘可以映射到每一台服务器上,比如每一台服务器上都映射为F盘,那他的路径是一样的
其实你准备一个文件服务器,那个文件地址指向那台文件服务器也可
现在比较流行oss 存储对象
3. dtime,就不要使用datetime类型了,呵呵,用int就行。
dtime = DateTime.Now - 2000年1月1日0分0秒,取总秒数。
4. 表中的varchar类型(MgrObjId, Id, Value),考虑是不是可以改成int。 MgrObjId,可以放到用另外一张表:MgrObjId,与这个int关联。 我们想一下,这些varchar是不断重复的,我们可以在另外张表插入10w个监控指标与本表的MgrObjId_int字段关联。 这个表,我们在系统一启动就加载到内存中:Dictionary<string,int>_dic. //key:MgrObjId. 这样,我们就不会有数据库访问消耗。
Id(guid)也是雷同。 value,用long也应该可以吧, 对于模拟量、数字量、信号量都可以处理。比如存浮点,我们自定义浮动系数,与long相乘,即可得float。
因为这个表是主表,存储量大,所以设计时一定要慎重,每个字段都要考虑合理性。即使一定要用字符串,也一般用char,而不用varchar。
默认情况下SET STATISTCS IO是停用的,我们可以通过下列语句在当前会话级别打开。
SET STATISTICS IO ON
这个语句可以帮助我们获得在语句执行时,所发生IO数(页读/写)
USE StatisticsDB
GO
SELECT * INTO SalesOrderDetail FROM AdventureWorks2008R2.Sales.SalesOrderDetail
GO
SET STATISTICS IO ON
DBCC dropcleanbuffers
DBCC freeproccache
GO
SELECT * FROM SalesOrderDetail
GO
SELECT * FROM SalesOrderDetail
从文件批量插入数据到 数据库
USE kfglxt
BULK INSERT dbo.test_Street
FROM 'f:\test.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
);
统计表数据量
SELECT OBJECT_NAME(ii.id) TableName , rows
FROM sysindexes ii
INNER JOIN sysobjects oo
ON ( oo.id = ii.id
AND oo.xtype = 'U ')
WHERE ii.indid < 2
ORDER BY TableName;
统计数据库大小(也能统计到记录数)
exec sp_spaceused 'dbo.log'
https://blog.csdn.net/u010070255/article/details/77852556
关闭数据的日志模式
如何让SQLServer执行SQL时不写日志
禁掉ldf文件
1。对表进行TRUNCATE TABLE 操作
2。在Simple Recvery Mode下的 SELECT INTO, BCP (Bulk Insert/Bulk Update), CREATE INDEX 以及对于Text/Image数据类型 等的操作。
3。如果使用Full Recovery Mode,所有的操作都将会被记录(还包括数据库备份等)
我觉得在使用大量的删除插入语句的时候如果不想让DB记录log,应该可以在执行语句前执行下列语句将日志记录方式改为simple
ALTER DATABASE [CSMCISA] SET RECOVERY simple
GO
然后在执行完成后再将数据库的日志记录方式改过来就行了,如果不放心就写再事务中,确保日志记录方式不会因为我们的操作而改变.
ALTER DATABASE [CSMCISA] SET RECOVERY full/bulk_logged
cte递归
表结构 id node pid with cte as
(
select * from 表名 where pid=值
union all
select a.* from 表名 as a,cte as b where a.pid=b.id
)
select * from cte
OPTION(MAXRECURSION 2) --限制递归层次
递归查询没有显式的递归终止条件,只有当递归子查询返回空结果集(没有数据行返回)或是超出了递归次数的最大限制时,才停止递归。
默认的递归查询次数是100,可以使用查询提示(hint):MAXRECURSION 控制递归的最大次数:OPTION( MAXRECURSION 16);如果允许无限制的递归次数,使用查询提示:option(maxrecursion 0);当递归查询达到指定或默认的 MAXRECURSION 数量限制时,SQL Server将结束查询并返回错误,如下:The statement terminated. The maximum recursion 10 has been exhausted before statement completion.事务执行失败,该事务包含的所有操作都被回滚。在产品环境中,慎用maxrecursion 查询提示,推荐通过 where 条件限制递归的次数。
查看 mssql 数据库的连接数
查看链接数
select * from master.dbo.sysprocesses
where dbid = DB_ID('adlog') 查看最大连接数,可以在属性中修改
SELECT @@MAX_CONNECTIONS
.net 杂项的更多相关文章
- 杂项之python描述符协议
杂项之python描述符协议 本节内容 由来 描述符协议概念 类的静态方法及类方法实现原理 类作为装饰器使用 1. 由来 闲来无事去看了看django中的内置分页方法,发现里面用到了类作为装饰器来使用 ...
- 杂项之使用qq邮箱发送邮件
杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...
- 杂项之图像处理pillow
杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/latest/ pillow中文 ...
- 杂项之pymysql连接池
杂项之pymysql连接池 本节内容 本文的诞生 连接池及单例模式 多线程提升 协程提升 后记 1.本文的诞生 由于前几天接触了pymysql,在测试数据过程中,使用普通的pymysql插入100W条 ...
- linux驱动初探之杂项设备(控制两个GPIO口)
关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...
- Linux驱动设计——字符杂项设备
杂项设备 linux里面的misc杂项设备是主设备号为10的驱动设备,misc设备其实也就是特殊的字符设备,可自动生成设备节点. 定义头文件<linux/miscdevice.h> 杂 ...
- Posix线程编程指南(5) 杂项
在Posix线程规范中还有几个辅助函数难以归类,暂且称其为杂项函数,主要包括pthread_self().pthread_equal()和pthread_once()三个,另外还有一个LinuxThr ...
- ARM指令集----杂项指令
ARM指令集可以分为6类,即是跳转指令,数据处理指令,程序状态传输指令,Load.Store指令,协处理器指令和异常中断指令 跳转指令: 在ARM中有两种方式可以实现程序的跳转,一种是跳转指令,另一种 ...
- BootStrap入门教程 (三) :可重用组件(按钮,导航,标签,徽章,排版,缩略图,提醒,进度条,杂项)
上讲回顾:Bootstrap的基础CSS(Base CSS)提供了优雅,一致的多种基础Html页面要素,包括排版,表格,表单,按钮等,能够满足前端工程师的基本要素需求. Bootstrap作为完整的前 ...
- 第二篇:杂项之图像处理pillow
杂项之图像处理pillow 杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/ ...
随机推荐
- 《python核心编程》--读书笔记 第21章 数据库编程
准备:今天拿笔记本装了mysql,这样就能在不同地方用其他电脑远程访问同一个数据库了. python安装MySQLdb模块:http://www.codegood.com/downloads. 21. ...
- github上面创建文件夹
- XMind 8 破解补丁 XMindCrack.jar注册机激活教程
XMind 8 破解补丁 XMindCrack.jar注册机激活教程 Xmind 8 update7破解版(附破解教程|激活补丁|序列号) 思维导图 XMind 8 Update 7 Pro 破解版 ...
- Jade模板引擎学习(一)安装及基本语法
Jade是一款高性能简洁易懂的模板引擎,Jade是Html的Javascript实现,在服务端(NodeJS)及客户端均有支持. 一.功能 客户端支持 超强的可读性 灵活易用的缩进 块扩展 代码默认 ...
- [LeetCode] 15. 3Sum ☆☆
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- LightOJ 1326 – Race 第二类Stirling数/
简单的模板题. 题意:问n匹马出现的不同排名数. 题解:可以使用DP,本质上还是第二类Stirling数(隔板法) #include <stdio.h> #include <iost ...
- 2015/8/26 Python基础(1):基本规则及赋值
Python有如下的基本规则: #后表示注释 \n是行分隔符 \是继续上一行,将过长语句分开 :分号将两个语句连接在一行中 :冒号将代码头和体分开 代码块用缩进块的方式体现 不同缩进深度分隔不同的代码 ...
- MSSQL Get Last Monday and Last Sunday
获取上周的周一和周日 代码: --start of last week , ) --end of last week , )
- pythonweb框架
https://www.cnblogs.com/sss4/p/8097653.html
- codevs1066&&noip引水入城
这道题 解决第一问 用灌水法 枚举第一行的每一个点 查找是否最后一行的每一个点是否都能灌到水 第二问 用反灌水发 枚举最后一行的每一个点 解决第一行每一个点所能覆盖的左右端点 可以证明每个点所能覆盖的 ...