- 博客(9)
- 收藏
- 关注
转载 TCP三次握手和四次挥手过程详解
1、三次握手(1)三次握手的详述首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。 最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B收听状态LISTEN——A同步已发送状态SYN-...
2018-03-08 15:45:29 295
转载 多进程与多线程的选择问题
关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就
2017-08-16 14:45:23 637
转载 IO多路复用机制详解
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(
2017-05-25 17:20:06 278
原创 MS SQLSERVER实时增量DML和DDL数据捕获
SQLSERVER提供了很好的触发器捕获数据方法,针对DML数据库可以从inserted和deleted临时表获取数据,当然也可使用dbcc inputbuffer,但是个人不推荐这种法,dbcc inputbuffer能源操作语句,但是对于动态批量插入数据时就很傻瓜了,只能捕捉到第一条操作语句。 首先建一张表,用来存储所有表的数据(所有表的数据汇总到一张表里面),方便导出
2017-04-27 11:12:12 1896 1
原创 提高Sqlserver大批量插入数据速度的几点方法
去掉表的所有索引用SqlBulkCopy进行插入分表或者分区,减少每个表的数据总量在某个表完全写完之后再建立索引正确的指定索引字段把需要用到的字段放到包含索引中(在返回的索引中就包含了一切)查询的时候只返回所需的字段
2017-03-27 21:50:26 9452
原创 FreeTDS连接Sqlserver数据库批量提交数据
FreeTDS作为Sqlserver和Sybase数据库的c/c++连接库 int main() { char szUsername[32] = "sa"; char szPassword[32] = "123456"; char szServer[32] = "172.16.3.127:1433"; char szDBName[32] =
2017-03-27 17:44:15 856
转载 Sqlserver数据库优化
数据库优化经验数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争。1、 在业务密集的SQL当中尽量不采用IN操作符2、 不使用not in 因为它不能应用表的索引。用not exists 或(外连接+判断为空)代替 3、 不使用0改为a>0 or a 4、 不使用 is null 或 is not null 判断字段是否为空一般不用到
2017-03-27 17:28:16 392
原创 Sybase获取动态sql语句返回值
最近遇到个需求,要获取动态sql的返回值,由于Sybase并没有像Sqlserver一样有sp_executesql这样的存储过程,在网上找了很久并没有找到相关的解决方法。最终我绕了点远路最终还是把它解决了。下面是我的做法:CREATE TABLE test ( id INT NOT NULL IDENTITY, name VARCHAR(2
2017-03-25 16:26:57 1573 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人