摘要: 虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决。 查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)I/O吞吐量小,形成了瓶颈效应。没有创建计算列导致查询不优化。内存不足网络速度慢查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock, sp_who, 活动的用户查看,原因是读写竞争资源。返回了不必要的行和列查询语句不好,没有优化 可以通过如下方法来优化查询 :把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以.. 阅读全文
posted @ 2013-10-13 17:17 逍遥神 阅读(185) 评论(0) 推荐(0) 编辑
摘要: (一) 简单理解四层和七层负载均衡: ①所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。 ②所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。 比如四层的... 阅读全文
posted @ 2013-10-13 17:14 逍遥神 阅读(120) 评论(0) 推荐(0) 编辑
摘要: A、两层(客户机服务器)C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 传统的C/S体系 阅读全文
posted @ 2013-10-13 09:05 逍遥神 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优 化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的 SQL语句,提高系统的可用性。 在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子.. 阅读全文
posted @ 2013-10-12 10:32 逍遥神 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 【方法一】 假设需要交换的两个变量都是整型,变量名分别为a和b。 a = a^b; b = a^b; a = a^b; 评价:该方法只能针对整形变量进行操作。【方法二】 假设需要交换的两个变量名分别为a和b。 a=a+b; b=a-b; a=a-b; 评价:该方法虽然可以用于浮点数,但是在变量值比较大的情况下可能会产生溢出【方法三】 假设需要交换的两个变量名分别为a和b。 a=a*b; b=a/b; a=a/b; 阅读全文
posted @ 2013-10-07 17:36 逍遥神 阅读(178) 评论(0) 推荐(0) 编辑
摘要: Web.xml常用元素定义了WEB应用的名字 声明WEB应用的描述信息 context-param元素声明应用范围内的初始化参数。 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。 Listener元素指出事件监听程序类。 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页 阅读全文
posted @ 2013-10-06 18:56 逍遥神 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 查看此网站(解释详细):http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点:首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。在C++中,内存泄漏的范围更大一些。有些对象被分配了内存空间,然后却不可达,由于C++中没有GC,这些内存将永远收不回来。在Java中,这些不可达的对象都由GC负 阅读全文
posted @ 2013-10-06 18:42 逍遥神 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$& 阅读全文
posted @ 2013-10-06 18:25 逍遥神 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 0、Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。 1、解释实现多线程的几种方法? 一 Java 线程可以实现 Runnable 接口或者继承 Thread 类来实现,当你打算多重继承时,优先选择实现 Runnable。 2、Thread.start ()与 Thread.run ()有什么区别? Thread.start ()方法(native)启动线程,使之进入就绪状态,当 cpu 分配时间该线程时,由 JVM 调度执... 阅读全文
posted @ 2013-09-25 19:25 逍遥神 阅读(117) 评论(0) 推荐(0) 编辑
摘要: (1)用wait和waitpid函数清理僵尸进程,父进程可以阻塞等待子进程结束(2)父进程在信号处理函数中wait()清理子进程其实,子进程在终止时会给父进程发SIGCHLD信号,该信号的默认处理动作是忽略,父进程可以自定义SIGCHLD信号的处理函数,这样父进程只需专心处理自己的工作,不必关心子进程了,子进程终止时会通知父进程,父进程在信号处理函数中调用wait清理子进程即可。例子1:#include #include #include #include void sig_child(int signo){ printf("handler child process!\n" 阅读全文
posted @ 2013-09-22 18:36 逍遥神 阅读(292) 评论(0) 推荐(1) 编辑