SQL Server

程序员如何选择未来的职业路线

扶醉桌前 提交于 2020-05-03 15:41:52
  本人从2008年毕业,作为一名软件开发程序员,开始正式踏入软件开发行业,转眼间已是9个年头了。做过初级软件工程师、高级软件工程师、项目主管、技术经理、项目经理。近些年带过开发团队、参与招聘面试。今天把个人这些年一些体会或者观点分享下,仅代表个人观点。 一、程序员的特性   技术出身的职场人特性很明显,与做市场、业务出身的职场人区别尤其明显。IT行业中常见的一些职场角色:老板、项目经理、产品经理、需求分析师、设计师、开发工程师、运维工程师等。开发工程师具有如下特征:   1、逻辑思维清晰、严谨和细腻;但是有时不容易转弯,有些程序员容易较劲、转牛角尖。   2、性格偏内向、不善于沟通、表达和交际;但是在网络聊天工具上,有些显为幽默、能聊。   3、为人实在、真诚待人、直来直往;但是有时比较呆板。   4、书面表达能力较差,甚至排斥编写文档的工作。 二、国内软件开发环境   国内软件开发环境,主要是讨论应用系统方面开发(不包括游戏开发,本人对游戏开发不了解),一般软件公司性质&特点:   1、互联网平台类型 -- 企业搭建产品平台进行运营,这类企业,大到BAT,小到初创互联网平台的企业。   (1)技术方面:技术人员开发内容和所用技术单一;因平台数据量、访问量大,解决问题过程中,更有利于深入的掌握技能;使用新技术偏多。   (2)福利方面:薪酬和福利较好,特别是大型的成熟的互联网平台

如何将流保存到C#文件中?

Deadly 提交于 2020-05-03 15:13:24
问题: I have a StreamReader object that I initialized with a stream, now I want to save this stream to disk (the stream may be a .gif or .jpg or .pdf ). 我有一个用流初始化的 StreamReader 对象,现在我想将此流保存到磁盘(该流可以是 .gif 或 .jpg 或 .pdf )。 Existing Code: 现有代码: StreamReader sr = new StreamReader(myOtherObject.InputStream); I need to save this to disk (I have the filename). 我需要将其保存到磁盘(我有文件名)。 In the future I may want to store this to SQL Server. 将来我可能要将其存储到SQL Server。 I have the encoding type also, which I will need if I store it to SQL Server, correct? 我也有编码类型,如果将其存储到SQL Server,我会需要该编码类型,对吗? 解决方案: 参考一: https:/

MySQL分页limit速度太慢的优化方法

自作多情 提交于 2020-05-02 15:31:19
limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [ offset, ] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的 偏移量 ,第二个参数指定返回记录行的最大数目。 初始记录行的偏移量是 0(而不是 1) : 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 mysql > SELECT * FROM table LIMIT 5 , 10 ; // 检索记录行 6 - 15 为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql > SELECT * FROM table LIMIT 95 , - 1 ; // 检索记录行 96 - last. 如果只给定一个参数,它表示返回最大的记录行数目: mysql > SELECT * FROM table LIMIT 5 ; // 检索前 5 个记录行 换句话说, LIMIT n 等价于 LIMIT 0,n 。

MYSQL分页 limit 太慢优化

筅森魡賤 提交于 2020-05-02 15:30:37
limit分页原理   当我们翻到最后几页时,查询的sql通常是: select * from table where column=xxx order by xxx limit 1000000,20 。查询非常慢。但是我们查看前几页的时候,速度并不慢。这是因为limit的偏移量太大导致的。MySql使用limit时的原理是(用上面的例子举例): MySql将查询出1000020条记录。 然后舍掉前面的1000000条记录。 返回剩下的20条记录。 上述的过程是在《高性能MySql》书中确认的。 两个方面:1-子查询;2-JOIN分页方式 解决的方法就是尽量使用索引覆盖扫描,就是我们select后面检出的是索引列,而不是所有的列,而且这个索引的列最好是id。然后再做一次关联查询返回所有的列。上述的sql可以写成: SELECT * FROM table t INNER JOIN ( SELECT id FROM table WHERE xxx_id = 143381 LIMIT 800000,20 ) t1 ON t.id = t1.id Mysql的分页查询语句的性能分析   MySql分页sql语句,如果和MSSQL的TOP语法相比,那么MySQL的LIMIT语法要显得优雅了许多。使用它来分页是再自然不过的事情了。 2.1最基本的分页方式: SELECT ... FROM ..

解决java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver问题

梦想的初衷 提交于 2020-05-02 09:19:39
在代码中手动连接SQL Server数据库的时候报错【java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver】。 知道大致原因是因为缺少了驱动包,然后因为是在Maven的环境中,通过Maven引入sqljdbc4的依赖之后好像不行,只能另外想办法。 另外的办法是 将sqljdbc4.jar文件复制到项目里的WEB-INF下的lib目录下面 ,试了一下就可以正常连接上SQL Server数据库了。 然后另外还发现2008的版本驱动和2000的有点不同,之前的驱动类名都是【com.microsoft.jdbc.sqlserver.SQLServerDriver】,可是2008以上版本却是【com.microsoft.sqlserver.jdbc.SQLServerDriver】,注意到了吗,其中的【sqlserver】和【jdbc】包名互换了,然后url的前缀也从【jdbc:microsoft:sqlserver://】变成了【jdbc:sqlserver://】,微软真的是逻辑鬼才。 如果最终的应用是要放在Tomcat下或什么容器下跑,需要在代码中添加加载驱动包类的代码,否则也会报上面的错误。 try { Class.forName( "com.microsoft.sqlserver

SQL Server 2008-LinkServer操作ORACLE

被刻印的时光 ゝ 提交于 2020-05-02 02:20:03
链接来源:https://www.cnblogs.com/wangyong/p/Oracle.html 最近项目有需求需要通过SQL Server2008中的数据自动更新到ORACLE中,其实,一开始肯定会想到触发器,因为可以保证实时性。 方案一: 首先,我很确定的一件事情就是MSSQL中的存储过程和触发器可以调用C#编写的dll文件,所以最开始的想法就是在SQL Server中创建表的触发器,然后调用客户端的同步程序(C#, C++,JAVA编写的小程序),这样,可以在客户端程序完成连接Oracle数据库和向里面插入的功能,这种方式虽然可以实现; 基本思路如下:MSSQL触发器==》客户端同步程序==》Oracle CRUD. 这种思路的类似实现方式在几年前的一个项目中使用过,运行效果不错,可以满足客户端获取数据的实时性和高效性。 方案二: 这次主要讨论这种方案,毕竟,总是要尝试新东西(对我来说这种方式目前还没运用到项目中) 首先我在电脑上安装了SQL Server2008 R2 以及Oracle11g,以及PL/SQL Developer,然后接下来操作我用截图进行展示: 第一步:测试oracle的安装是否正确,用 pl/sql developer进行连接,以及创建一张表,默认插入一条数据 第二步:oracle的数据表准备好后,开始SQL Server 2008

安装SQL server 提示重新启动计算机失败

浪尽此生 提交于 2020-05-02 02:17:28
SQL Server2008是一款功能强大、实用性强的mysql数据库管理系统,因此很多用户都会在Win7系统中安装SQL Server2008,但是不少用户在安装过程中遇到问题,安装SQL Server2008时提示重启计算机失败,这该怎么办呢?下面小编就来介绍下Win7安装SQL Server2008提示重启计算机失败的解决办法。 工具/原料 SQL Server2008 计算机 方法/步骤  解决方法一:   1、同时按下Win7旗舰版电脑键盘上的win+R快捷键打开电脑的运行窗口,在打开的运行窗口中,输入regedit并单击回车,这样就可以打开注册表编辑器窗口了 2、在打开的注册表编辑器窗口中,点击展开左侧菜单中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server; 3、然后在这个Microsoft SQL Server选项上点击鼠标右键,选择删除; 4、再次在左侧菜单中定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,然后在右侧找到PendingFileRenameOperations,然后点击右键将PendingFileRenameOperations删除就可以了;  解决方法二:   1

SQL查询某库所有的表所有的字段及字段的属性

血红的双手。 提交于 2020-05-01 23:30:43
SELECT ( case when a.colorder = 1 then d.name else null end ) 表名, a.colorder 字段序号, a.name 字段名, ( case when COLUMNPROPERTY ( a.id,a.name, ' IsIdentity ' ) = 1 then ' √ ' else '' end ) 标识, ( case when ( SELECT count ( * ) FROM sysobjects WHERE (name in ( SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in ( SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in ( SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name))))))) AND (xtype = ' PK ' )) > 0 then ' √ ' else '' end ) 主键, b.name 类型, a.length 占用字节数, COLUMNPROPERTY (a.id,a.name, ' PRECISION ' ) as 长度, isnull (

MySQL数据库优化

强颜欢笑 提交于 2020-05-01 18:16:41
MySQL性能 最大数据量 最大并发数 查询耗时0.5秒 实施原则 数据表设计 数据类型 避免空值 text类型 索引优化 索引分类 优化原则 SQL优化 分批处理 不做列运算 避免Select * 操作符<>优化 OR优化 IN优化 LIKE优化 JOIN优化 LIMIT优化 其他数据库   博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是 没有命中索引和没有分页处理 。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。改造这些SQL的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。 MySQL性能 最大数据量    抛开数据量和并发数,谈性能都是耍流氓 。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 文件系统 单文件大小限制 FAT32 最大4G NTFS 最大64GB NTFS5.0 最大2TB EXT2 块大小为1024字节,文件最大容量16GB;块大小为4096字节,文件最大容量2TB EXT3 块大小为4KB,文件最大容量为4TB EXT4 理论可以大于16TB 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置