mssql

通达OA连接MSSQL数据库

爷,独闯天下 提交于 2020-01-18 02:15:50
通达OA的PHP.ini中启用了对MSSQL的支持,但是呢, 得在服务器上安装ODBC驱动,今天就是折腾了好久,才搞明白 依据MSSQL版本的不一样,安装的ODBC驱动也不一样, 文件名称为: msodbcsql.msi 来源: CSDN 作者: 小ih熊 链接: https://blog.csdn.net/pengxuanlan/article/details/103972174

MSSQL执行计划的优化建议

醉酒当歌 提交于 2020-01-13 01:44:23
执行计划:提交sql语句,数据库查询优化器,经过分析生成,制定多个查询方式,从中选择资源使用最少的 数据库制定执行计划是按照使用资源最少,而不是时间最短 对应的意思: 1、受影响的行数 2、影响的字节数 3、影响的数据大小 执行计划:   1、Table Scan 全表扫描 性能最差   2、Cluster Index Scan 性能最差,同上 虽然有聚集索引,其实也是全表扫描   3、Index Seek(NonClustered) 性能非常高   4、Index Scan 先index,再扫描   5、Cluster Index Seek 性能最高   一般出了问题,看看执行计划,找出scan,换索引,看效果,尝试   profiler好工具 常规的SQL优化建议:   1、对列的计算要避免,任何形式都要避免   2、in查询 or查询,索引会失效,可能是拆分   3、in 换exists     not in 不要用,不走索引   4、is null和is not null 都不走索引   5、<> 也不走索引     可以拆分成> 和<   6、join时,链接越少性能越高     左链接,以左边的结果为准     右链接反过来,     连接字段要求带索引 来源: https://www.cnblogs.com/Iven-zhang/p/12185448.html

Linux系统下ThinkPHP5链接MsSQL

天大地大妈咪最大 提交于 2019-12-21 15:48:19
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 案例 CentOS6.8系统ThinkPHP5链接MsSQL数据库。 分析 ThinkPHP5提供了Mysql、Pgsql、Sqlite和Sqlsrv四种数据库驱动。Window系统下有现成的php_sqlsrv.dll扩展可用,但Linux系统中没有(本人没有找到)。 尝试1未成功,写来以备其它用途 安装freetds wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz tar -zxvf freetds-patched.tar.gz cd freetds-* ./configure --prefix=/usr/local/freetds --with-tdsver=auto --enable-msdblib --with-gnu-ld --enable-shared --enable-static make && make install 安装mssql wget http://cn2.php.net/distributions/php-5.6.22.tar.gz tar -zxvf php-5.6.22.tar.gz cd php-*/ext/mssql /usr/local/php/bin/phpize .

熟知这几步,MSSQL ndf文件大小变为0 KB不再是难题

萝らか妹 提交于 2019-12-20 14:29:01
一、MSSQL ndf文件故障描述 用户某存储损坏,导致数据库崩溃。通过重组存储,恢复数据库文件,发现有四个ndf文件大小变为0 KB。数据库大小约80TB。数据库中有1223个文件,数据库每10天生成一个NDF文件,每个NDF大约500GB,数据库包含两个LDF文件。 二、MSSQL ndf文件故障分析 存储损坏,NDF文件大小变为0 KB,经判断NDF文件在磁盘上可能存在。可以通过编写数据库扫描碎片程序,扫描数据库碎片、拼接碎片恢复NDF文件,然后修复数据库。 三、MSSQL ndf文件恢复过程 1 磁盘扫描,扫描数据库碎片 2 拼接碎片 根据NDF文件的页面特征,按照文件号,页号拼接碎片,重组生成出这些0kb的NDF文件。 3 检测数据库文件 使用北亚MSSQL文件检测工具对所有数据文件进行检测,结果:拼接出的4个NDF文件有少量的空页,其他文件正常。 4 进一步对损坏lun进行分析 发现这些数据页在存储层面已经不存存在了。不能恢复这些数据页,即这4个文件不能完全恢复 5尝试附加数据库 报错 “处理数据库的日志时出错,如果可能请从备份还原。如果没有可用的备份,可能需要重新生成日志”。 6、无日志附加数据库 修改系统表,从系统表剔除掉最后添加的LDF文件,计算并修改校验。进行无日志附加数据库。报错:数据库存在一致性错误,如下图: 7、 修改系统表中这4个损坏的NDF文件的块数量

docker stack 部署 mssql

戏子无情 提交于 2019-12-09 00:27:31
=============================================== 2019/12/8_第1次修改 ccb_warlock =============================================== 因为最近的工作项目使用的是mssql(自从知道mssql之后,我几乎不再说起另一个累赘的名字:sql server),不得不去重新学习使用mssql。 我的理解是,使用mssql仅仅只是使用数据表时,用docker运行一个开发用的容器比起在一台win server中安装一个来的高效且省资源。 当然如果还需要写存储过程及其调试,那还是用ssms来开发和调试吧(过程比起oracle、mysql虐心太多)。 因为我自学过docker、又喜欢折腾这种可以省时间的技术,所以整理了这篇笔记给路人参考。 一、前提条件 环境中已经部署了docker swarm( http://www.cnblogs.com/straycats/p/8978135.html ) 最好也部署了portainer( http://www.cnblogs.com/straycats/p/8978201.html ) 默认swarm创建了network:swarm-net 二、部署MSSQL 由于项目需要,我部署的是mssql 2017。 2.1 创建目录映射 mkdir -p

windows 2003 iis 6 php 连 sql server 2005 2008

我的梦境 提交于 2019-12-06 05:55:58
windows 2003 iis 6 php 连 sql server 2005 2008 需要的是 http://www.microsoft.com/en-us/download/details.aspx?id=20098 点击下载的时候,会出现两个文件 SQLSRV20.EXE SQLSRV30.EXE 分别是 Microsoft Drivers 2.0 for PHP for SQL Server Microsoft Drivers 3.0 for PHP for SQL Server 而在 windows 2003 iis6 环境下 需要的是 2.0 版本的驱动 而不是3.0 版本的驱动 当解压 2.0 的驱动,里面有 各种版本 以ts vc9结尾的 为: ts 线程安全版的 针对 php ts 版 以nts vc9 结尾的 为:nts 非线程安全版的 针对 php nts 版 在搜索资料过程中,还了解到 windows iis 环境下,线程安全版 和 非线程安全版本 的区别 两者在 windows iis 环境下 效率是不一样的,iis fastcgi 模式下是要用 非线程安全版的 如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe

MSSQL 插入数据时候,如果存在则更新的方法分享

牧云@^-^@ 提交于 2019-12-05 18:57:37
原文: MSSQL 插入数据时候,如果存在则更新的方法分享 摘要: 下文讲述MSSQL中,插入数据时,如果存在则更新,否则就插入数据的方法分享 实验环境:sql server 2017 mssql中,我们可以采用 MERGE INTO 关键字实现此功能, 当两者匹配成功,则运行***语句,否则运行其它语句,达到插入数据时的判断操作, 具体操作方法如下所示: create table [maomao365.com] (keyId int identity, info varchar(80) ) go insert into [maomao365.com] (info)values('sqlblog'), ('sqlserver'),('maomao365.com') ---merge into实现如果存在,则更新 ---如果不存在,则删除 MERGE INTO [maomao365.com] a USING (SELECT 2 AS keyId_B, 'other' AS info_B ) b ON ( a.keyId = b.keyId_B) WHEN MATCHED THEN UPDATE SET a.info= b.info_B --更新 WHEN NOT MATCHED THEN INSERT (info) VALUES(b.info_B); ---插入 go select

MSSQL注入-显错注入及反弹注入

故事扮演 提交于 2019-12-05 17:55:18
前言: MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路。 MSSQL的显错注入操作: 以联合查询为例: 猜字段 联合查询:union all 猜出输出点使用null填充 注释只有 --+、-- a 没有# 查询系统库:select name,null,...... from dbo.sysdatabases 可以不用查库名 查询系统表:select name,null,...... from dbo.sysobjects where xtype='U' //U表示用户创建表 查询表中的字段:select name,null,...... from dbo.syscolumns where id= 表名对应的id MSSQL反弹注入: MSSQL反弹注入的使用场景 命名是SQL的注入点却无法进行注入操作,注入工具猜解的速度异常缓慢,错误提示信息关闭,无法返回注入结果等,这些都是在注入攻击中常常遇到的问题。 为了解决以上这些疑难杂症,比较好的解决方法就是使用反弹注入技术,而反弹注入技术则需要依靠opendatasource函数支持。 环境的搭建: 我们前面说到,MSSQL注入 — 反弹注入实际就是把查询出来的数据发送到我们的MSSQL服务器上,那么我们需要自己的MSSQL数据库和一个公网IP。

在Docker上安装MSSQL(SQL Server)

拥有回忆 提交于 2019-12-05 14:18:12
在转移到Mac OS X 阵营之后,如果想在本机上安装微软的mssql-server数据库有三种方式: 第一种是在本机上安装 MSSQL for Linux 版本。 第二种是安装Windows虚拟机,然后在 虚拟机 里面使用ISO文件进行安装。 第三种也就是我要讲的方式,就是使用 Docker 进行安装。 第一种方式和第二种方式缺点就是要自己找安装包,第三种方式直接通过Docker的命令 docker search mssql 就能搜索出来,然后拉取创建容器即可。 微软也提供了相应的 帮助文档 镜像是微软官方的,但docker hub 奇怪的是并没有把其标示为OFFICIAL。 1.下载镜像 docker pull microsoft/mssql-server-linux 使用该命令就可以把数据库的docker镜像下载下来。 2.创建并运行容器 docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux 这个密码需要复杂密码,要有大小写和特殊符号,替换yourStrong(!)Password成你自己的密码就行。如果只Linux服务器,可以不用端口映射