sqlserver

金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?

北战南征 提交于 2020-11-02 17:06:12
根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术人员,大家可能听说过“滚动发布”和“蓝绿发布”等术语,但是很多人并不清楚这些术语背后的原理。本文试图总结当前主流的发布策略,每个的优劣,适用性,让开发人员特别是架构师对现代发布技术有一个更为清晰全面的认识,让大家能够根据自己的企业上下文,对发布策略做出正确的选型和实践。 一、单服务器组发布 先解释下单服务器组的概念,早先我们机器资源比较紧张,不像现在云计算和虚拟化(包括容器技术)这么发达,所以应用机器基本是预先静态分配好的(一般由运维负责分配),原来应用 A 住在这 n 台机器上,那么下次升级发布的应用 A 也住在这 n 台机器上,所以称为单服务器组发布方式。 1.1 蛮力发布 如下图所示,这种发布方式比较简单粗暴,有点像我们传统的软件升级方式,主要靠手工完成,先将老版本 V1 全部下掉,再将新版本发到机器上去。这种方式会引入服务中断(停机),在开发测试环境是可行的,但对于生产环境发布,其会直接影响用户的使用体验,这种方式一般是不建议的。 发布前 发布后 优势和适用场合 优势: 简单成本低 不足: 服务中断用户受影响,出了问题回退也慢 适用场合: 开发测试环境 非关键应用(用户影响面小)

【SQL注入】SQL注入知识总结v1.0

爷,独闯天下 提交于 2020-11-02 16:17:45
点击上方 “公众号” 可以订阅哦! Hello,各位小伙伴周末晚上好~ 话说最近有小伙伴在公众号留言问我: “小编,怎么盗QQ号?” “小编,在某某网站用什么代码就可以免费充值?” “小编,能不能帮我攻击一下某某网站?” “小编,出来挨打!” First of all,你的目标得有可以利用的漏洞才行,不存在什么万能代码的... 第二,第二步之后的所有行为都是违反国家 网络安全法 的!!! 我们要做遵纪守法,维护国家网络安全的白帽子~ 而不是搞黑产的黑客~~ 好啦,言归正传,其实早就写完了这篇SQL注入总结,但一直没有发布。 因为SQL注入可以写的东西实在太多了,最后决定还是先发出来,后期继续丰富吧。 Part.0 目录 目录 一、SQL概述 什么是SQL注入? 二、SQL注入点的类型 注入点分类 三、常见的注入方式 报错注入 联合查询注入 盲注 时间盲注 存储过程 四、存在SQL注入的点 GET POST HTTP 文件头注入 五、一些WAF的绕过方法 六、SQL注入的防护 SQL注入的危害 使用预编译语句 对输入进行严格的过滤 最小权限原则 Part.1 SQL概述 什么是SQL注入? 利用web应用程序对用户 输入验证上的疏忽 ,攻击者在输入的数据中包含对某些数据库系统 有特殊意义的符号或命令 。 通过将这些恶意命令 拼接到正常的SQL执行语句中一并执行

MS SqlServer 获取表结构

我与影子孤独终老i 提交于 2020-10-29 20:01:59
SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = a.name, 类型 = CASE WHEN b.name = 'varchar' OR b.name = 'nvarchar' THEN b.name+'('+CONVERT(VARCHAR(20),COLUMNPROPERTY(a.id,a.name,'PRECISION'))+')' ELSE b.name END, 字段说明 = isnull(g.[value],''), 主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end, 占用字节数 = a.length, 长度 =

Python模块-pymssql

独自空忆成欢 提交于 2020-10-29 06:58:59
[TOC] Python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。如果想链接操作SQL server,需使用第三方包 pymssql pymssql 是一个Python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循Python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库 工作原理 使用connect创建连接对象; connect.cursor创建游标对象,SQL语句的执行在游标上执行; cursor.execute()方法执行SQL语句,cursor.fetch()方法获取查询结果; 如果有反向修改,需执行connect.commit(); 调用close方法关闭游标cursor和数据库连接; 注意: https://www.cnblogs.com/baiyangcao/p/pymssql_basic.html 一个连接一次只能有一个游标的查询处于活跃状态! 可以通过使用 with 语句来省去显示的调用 close 方法关闭连接和游标 pymssql 2.0.0 以上的版本可以通过 cursor.callproc 方法来调用存储过程 常用封装 class MSSQL: # 类的构造函数,初始化数据库连接ip或者域名,以及用户名,密码,要连接的数据库名称 def __init_

初识.Net Core EF(查询)

时光总嘲笑我的痴心妄想 提交于 2020-10-29 06:04:22
第一步:创建项目( 就控制台而言 ) 第二步,安装EF( 四个步骤 ) (1)install-package microsoft.entityframeworkcore.sqlserver (2)install-package microsoft.entityframeworkcore.tools (3)install-package microsoft.entityframeworkcore.sqlserver.design (4)Scaffold-DbContext "Server=.;Database=users;Uid=sa;Pwd=123456;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 开始做一个简单的查询功能 这样一个简单的小demo 就完事了,这个例子代码上.net core ef和.net ef上没什么区别的,就是.net core ef需要手动去安装和连接数据库,而.net ef连接数据库用 Model First、DBFirst、Code First 的话,web.config里面就自动生成连接的。 默默学习的小白媛路过,大佬看见什么不足的地方,可提出意见。。。。。。。。。。。 来源: oschina 链接: https://my.oschina.net/u/4302478/blog

MSSQLSERVER执行计划详解

一曲冷凌霜 提交于 2020-10-27 18:25:35
序言 本篇主要目的有二: 1、看懂t-sql的执行计划,明白执行计划中的一些常识。 2、能够分析执行计划,找到优化sql性能的思路或方案。 如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博文给你: SqlServer性能检测和优化工具使用详细 , sql语句的优化分析 , T-sql语句查询执行顺序 。 执行计划简介 1、什么是执行计划? 大哥提交的sql语句,数据库查询优化器,经过分析生成多个数据库可以识别的高效执行查询方式。然后优化器会在众多执行计划中找出一个资源使用最少,而不是最快的执行方案,给你展示出来,可以是xml格式,文本格式,也可以是图形化的执行方案。 2、预估执行计划,实际执行计划 选择语句,点击上面其中一个执行计划,预估执行计划可以立即显示,而实际执行计划则需要执行sql语句后出现。预估执行计划不等于实际执行计划,但是绝大多数情况下实际的执行计划跟预估执行计划都是一致的。统计信息变更或者执行计划重编译等情况下,会造成不同。 SET STATISTICS PROFILE 和 SET STATISTICS XML 彼此互为对等物。 前者生成文本输出;后者生成 XML 输出。 在 SQL Server 的未来版本中,新的查询执行计划信息将只通过 SET STATISTICS XML 语句显示,而不通过 SET STATISTICS PROFILE 语句显示。

[开源] .Net ORM FreeSql 1.10.0 稳步向前

我怕爱的太早我们不能终老 提交于 2020-10-27 12:46:25
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白)。今天带点干货和湿货给大家,先说下湿货。 认识我的人,知道 CSRedisCore 是我写的另外一个开源组件,这个项目是 2016 年从 ctstone/csredis 项目 clone 到自己工作的项目中,修改源码经过一年多生产考验,于 2017 年发布开源 https://github.com/2881099/csredis ctstone/csredis 项目于 2014 年停止了更新,到我手里完善的功能如下: 连接池 哨兵高可用 集群 redis 2.8 以上的版本命令补充,包括 Geo、Stream 通讯协议 bug 修复 暂时想到的只有这些,之后可能再补充。FreeSql 文章标题为什么要来说 csredis? 这两年的时间里 95% 精力都用在了 FreeSql 上面, 5400+ 单元测试、支持十几种数据库适配,渣男辜负了 csredis 这个项目。最近一个多月开源圈子的奇葩事接二连三,居然有人跑去 ctstone/csredis 原作者的 issues 告我的状,这个告状的人还是 NOPI 原作者,因为当初他自己不维护 NPOI .NET Core 版本了,社区有好人把 .NET Core 版本测试做好了开源(dotnetcore/NPOI)

【Zara原创】SqlSugar4轻量级ORM框架的使用指南

十年热恋 提交于 2020-10-24 10:04:24
前言:sqlSugar出生已经有3年之久了,从1.0到现在的4.x的版本,为了以后方便使用SqlSugar,所以特意花了2个小时来叙述它。 关于SqlSugar 性能:性能最好的ORM之一,具有超越Dapper的性能 ,走的是EMIT够构中间语言动态编译到程序集,完成高性能的实体绑定,达到原生水平。 功能:支持 DbFirst、CodeFirst、数据库维护、链式查询、链式更新、链式删除、链式插入、实体属性、复杂模型的查询、ADO.NET。特别是批量等功能都是货真价实的并非循环操作。 兼容性:支持多种数据库,具体就是SqlSugar的DbType枚举中有MySql、Oracle、SqlLite、SqlServer、PostgreSQL 入门使用 以下代码是创建连接,其中属性构造器的四个值分别为连接字符串、数据库类型、是否自动销毁连接、获取自增列主键信息。 SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "Data Source=DESKTOP-OEJGKOO;Initial Catalog=TextInfo;Integrated Security=True", DbType = SqlSugar.DbType.SqlServer,

SQLServer 实现简单的省市区联动

百般思念 提交于 2020-10-24 06:19:25
今天研究了一下SQL Server实现省市区联动的方法,记录一下。 一、先创建三个表,Dic_Area(区)、Dic_City(市)和Dic_Province(省),三个表建表语句如下: 1 create table Dic_Province 2 ( 3 id int NOT NULL , 4 provinceID varchar ( 6 ) default NULL , 5 province varchar ( 40 ) default NULL , 6 PRIMARY KEY (id) 7 ) Dic_Province 1 create table Dic_City 2 ( 3 id int NOT NULL , 4 cityID varchar ( 6 ) default NULL , 5 city varchar ( 50 ) default NULL , 6 provinceid varchar ( 6 ) default NULL , 7 PRIMARY KEY (id) 8 ) Dic_City 1 CREATE TABLE Dic_Area 2 ( 3 id int NOT NULL , 4 areaID varchar ( 50 ) default NULL , 5 area varchar ( 60 ) default NULL , 6 cityID

Winform开发中的困境及解决方案

我的梦境 提交于 2020-10-24 01:45:35
在我们开发各种应用的时候,都会碰到很多不同的问题,这些问题涉及架构、模块组合、界面处理、共同部分抽象等方面,我们这里以Winform开发为例,从系统模块化、界面组件选择、业务模块场景划分、界面基类和辅助类处理、代码生成工具辅助开发等方面介绍在实际项目开发过程中碰到的困境和相关的解决方案,以便分析其中是如何逐步提高效率和整体用户体验的。 1、系统模块化 软件和建筑工程很类似,都是需要构建一个庞大而功能完整的一个系统,而工程化也意味着需要多人协作,那么就需要把一个庞大的系统横向或者纵向划分为各个可以独立施工完成的模块,虽然各个模块之间有所衔接或者交互,但是基本上可以以模块化的方式来构建,这个也是工程化开发的精髓所在。 以一个软件管理系统为例,我们尽可能把精力焦点放在客户的业务需求上,而对于常规的如权限控制、字典管理等一些常用的内容,由于它们的处理逻辑在特定领域上基本上比较固定一些,可以尽可能独立并重复使用, 而有时候,以某个特定的业务来说,同时很多处理规则也是不变的,因此也可以以业务模块的方式来划分,从而类似通用模块的方式重复使用。 模块化类似小孩子搭积木的方式构建一个所要的形状,虽然软件和建筑在这方面肯定更加复杂化,但是模块化系统是大势所趋,也是简化开发、易于维护、提高系统健壮性的重要举措。 2、界面组件选择 在Winform内置的传统样式里面,虽然提供了很多很好的界面组件