sqlserver

造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

前提是你 提交于 2020-07-29 10:27:34
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,为.net core的生态尽一份绵薄之力。 Github求star: AgileConfig

sqlserver 游标使用

此生再无相见时 提交于 2020-07-29 10:22:32
declare empi_cursor cursor scroll --创建游标 for select top 50 YLJGDM,GRJBXXBSH,XGBZ,'2' AS SJLY,KLXDM as KLX,KH,ZJLXDM as ZJLX, ZJHM,XM FROM DA_GR_JBXX(nolock) where SYZT='0' OPEN empi_cursor --打开游标 DECLARE @zjlx varchar(2) --声明变量 ‘DECLARE’为声明变量 ‘@name’为变量名称 后面为变量类型 DECLARE @zjhm varchar(32) DECLARE @klx varchar(16) DECLARE @kh varchar(64) DECLARE @sjly varchar(1) DECLARE @xm varchar(30) DECLARE @yljgdm varchar(22) DECLARE @grjbxxbsh varchar(64) DECLARE @xgbz varchar(1) DECLARE @lybm varchar(20) FETCH NEXT FROM empi_cursor into @yljgdm,@grjbxxbsh,@xgbz,@sjly,@klx,@kh,@zjlx,@zjhm,@xm --从游标变量中读取值

ASP.NET Core 中的缓存 / MemoryCache

落爺英雄遲暮 提交于 2020-07-29 10:01:44
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 ASP.NET Core 缓存Caching,.NET Core 中为我们提供了Caching 的组件。 目前Caching 组件提供了三种存储方式。 Memory Redis SqlServer 学习在ASP.NET Core 中使用Caching。 Memory Caching 1.新建一个 ASP.NET Core 项目,选择 Web 应用程序 ,将身份验证 改为 不进行身份验证。 2.添加引用 Install-Package Microsoft.Extensions.Caching.Memory 3.使用 在Startup.cs 中 ConfigureServices public void ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); // Add framework services. services.AddMvc(); } 然后在控制器中依赖注入、 private IMemoryCache _cache; public LongLongController(IMemoryCache memoryCache) { _cache = memoryCache; } 1、方法:TryGetValue 及 方法缓存的存取

整理性能计数器注释

限于喜欢 提交于 2020-07-29 07:57:54
[前话]收集性能计数器注释,以备使用! [内容] 1 % Processor Time (Processor _Total) 指处理器用来执行非闲置线程时间的百分比。计算方法是,度量处理器用来执行空闲线程的时间,然后用 100% 减去该值。 如果该参数值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。2 Processor\% User Time\_Total 表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。 3 Memory\Pages/sec Hard Paging-Memory:Pages/sec > 0 或 Memory:Page Reads/sec > 5 Memory:Pages/sec > 0 或 Memory:Page Reads/sec > 5 表示 Windows 将通过磁盘解决内存引用(强制分页错误)。这需要消耗磁盘 I/O 和 CPU 资源。Memory:Pages/sec 是一个指示 Windows 正在执行的分页数量和数据库服务器当前的 RAM 配置是否充足的有效指示器。Performance Monitor 中的强制分页信息的子集是 Windows 每秒钟必须读取分页文件以解决内存引用的次数,它用

SQLServer新建用户只能访问某个表(同方法可设置数据库)

◇◆丶佛笑我妖孽 提交于 2020-07-29 05:25:36
1. 首先进入数据库级别的【安全性】-【登录名】-【新建登录名】 ( 图1:新建登录名 ) 2. 在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库 ( 图2:设置选项 ) 3. 在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的操作 ( 图3:选择对应数据库 ) 4. 现在我们就可以对TestLog数据库中的User表进行权限的设置了,【表】-【 属性】 ( 图4:选择对应表 ) 5. 在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】 ( 图5:设置访问表的用户 ) 6. 在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了 ( 图6:权限列表 ) 7. 现在就使用TestUser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了 ( 图7:效果 ) 来源: oschina 链接: https://my.oschina.net/u/4256309/blog/4321202

第一次Grafana使用心得(X轴与Y轴、SqlServer)

大兔子大兔子 提交于 2020-07-28 22:27:18
1.图表在鼠标放上去不显示Y轴具体值:由图中的“字符串”改成“none”。 2.图中的decimal可以设置成整数 3.图中的rotate表示y轴的倾斜度,可以设置。例如:30 4.图中的format可以设置y轴的数据值 5.第一次用SQL server的设置 来源: oschina 链接: https://my.oschina.net/u/4394438/blog/4399187

使用Docker运行SQL Server

风格不统一 提交于 2020-07-28 19:55:23
现在.net core已经跨平台了,大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持运行在docker上,也就说现在SQL Serer已经可以运行在linux下了。 下面在Ubuntu 16.4上演示安装并使用SQL Server 2019-CTP3.2 SQL Server in Docker sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu 使用docker pull命令从docker hub拉取sqlserver 2019-ctp3.2的镜像 sudo mkdir /hd2/sqlserver2019_data sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=dev@123," -p 14330:1433 --name sqlserver2019 -v /hd2/sqlserver2019_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu 使用docker run 命令启动容器,其中要注意的是使用

1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)

纵然是瞬间 提交于 2020-07-28 19:03:49
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主从库、多库的需求。( 其实不管有没有这个需求,Dapper的封装应当像NetDh框架里封装的那样使用) ; 2.涉及日志操作类的设计,需要记录用户操作日志、记录系统异常日志等; 3.涉及缓存操作类的设计,这点不用需求都应该当考虑,不管是小项目的内存缓存还是大项目中的Redis/Memcache等; 4.涉及二次开发模式简单的设计。因为多个客户需要同一个项目产品,但是客户之间对该产品的需求点又有些不一样。 本文先讲为了第1点需求而封装的数据库操作类,其它三点在接下来文章中也会介绍。 2.ORM框架Dapper介绍 Dapper是轻量级高效的框架,它高效原因是利用 Emit技术 + 各种解析缓存 + DataReader 。 Dapper可以在所有Ado.net Providers下工作,包括SQL Server, Oracle, MySQL , SQLite, PostgreSQL, sqlce, firebird 等,这些数据库操作类都有实现IDbConnection接口。你看源码会发现,Dapper提供的public方法大都是对IDbConnection的扩展。

设计模式中的那些工厂

好久不见. 提交于 2020-07-28 18:46:07
设计模式中的那些工厂 Intro 设计模式中有几个工厂模式,聊一聊这几个工厂模式的各自用法和使用示例,简单工厂(严格的来说不属于设计模式),抽象工厂,工厂方法,这几个均属于创建型模式, 所谓创建型模式,就是说这几个设计模式是用来创建对象的。 简单工厂 首先来说一说,最简单的简单工厂 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例 严格的来说,简单工厂模式是工厂模式家族中最简单实用的模式,但不属于23种 GOF 设计模式之一。因为每次要新增类型的时候必须修改工厂内部代码,不符合开闭原则。 来看一个例子: public class OperationFactory { public static Operation CreateOperation(string operate) { Operation operation = null; switch (operate) { case "+": operation = new OperationAdd(); break; case "-": operation = new OpertaionSub(); break; case "*": operation = new OperationMul(); break; case "/": operation = new OperationDiv(); break; } return

MySql_SQLyog+SQL Assistant实现智能提示

不羁的心 提交于 2020-07-28 17:55:27
相信用过sqlserver+SQL Assistant的同学都知道其智能提示多么方便,但是转到mysql后,无论是使用navicat还是webbench都无法实现较好的智能提示效果, 最终在网上找到使用SQLyog+SQL Assistant实现类似的效果 一、使用软件 1、SQLyog:需要32位版本,64位试过貌似无效 2、SQL Assistant 7.2 3、libmysql.dll 二、执行步骤一(配置SQL Assistant ) 2.1 选择SQL Editor 2.2 MySQL DLL需要定位到libmysql.dll路径才行 2.3 步骤一执行完后就可以在SQL Edit窗体执行sql并有智能提示了,但是中文有乱码 三、执行步骤二(配置SQLyog ) 3.1 SQLyog窗体点击快捷键 Ctrl+Shift+F5,按如下方式配置 都安装32位版本 弹出该窗体的方法:先安装sqlyog并启动(安装时选择Professional Edition,不要选择Enterprise Edition),在安装SQL assistant(也选择Professional 版本) 3.2 智能提示 来源: oschina 链接: https://my.oschina.net/u/4266664/blog/4302053