
2010年9月13日
通過存儲過程向數(shù)據(jù)庫一下子插入了一千萬(10000000)條記錄,結(jié)果等了很長時(shí)間,PL/SQL都沒有響應(yīng),我又瞎折騰了下,結(jié)果執(zhí)行了好幾次,導(dǎo)致數(shù)據(jù)庫假死了,我只有刪除當(dāng)前的會話,從網(wǎng)上找到相關(guān)的腳本代碼。
1> 通過此語句查詢正在鎖定的SESSION_ID:
1
SELECT SESSION_ID FROM V$LOCKED_OBJECT,USER_OBJECTS WHERE V$LOCKED_OBJECT.OBJECT_ID = USER_OBJECTS.OBJECT_ID
2> 通過第一步查詢到的SESSION_ID查詢SERIAL#
1
SELECT SERIAL# FROM V$SESSION WHERE SID='12'(此處'12'為上面查詢到的'SESSION_ID')
3> 根據(jù)1,2步查詢到的SESSION_ID和SERIAL#執(zhí)行
1
ALTER SYSTEM KILL SESSION '12,154'(12為SESSION_ID的值, 154為SERIAL#的值)
4> 如果利用上面的命令殺死一個(gè)進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長時(shí)間沒有被釋放,那么還可以在os一級再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語句獲得當(dāng)前進(jìn)程(線程)的標(biāo)示PID:
1
select spid, osuser, s.program
2
from v$session s,v$process p
3
where s.paddr=p.addr and s.sid=12 (12是上面的SESSION_ID)
然后在OS通過任務(wù)管理器找到對應(yīng)的進(jìn)程,在殺死這個(gè)進(jìn)程(線程)
posted @
2010-11-27 14:55 absolute 閱讀(859) |
評論 (0) |
編輯 收藏
最近在學(xué)習(xí)存儲過程,以前在項(xiàng)目中沒有怎么接觸過!
我通過存儲過程像數(shù)據(jù)庫中批量添加一千萬(100000000)條記錄,結(jié)果PL/SQL很長時(shí)間沒有反映,結(jié)果不得已通過腳本殺掉當(dāng)前進(jìn)程,我重新通過存儲過程插入10000條數(shù)據(jù)。
建表腳本:
1
--刪除用戶表
2
DROP TABLE T_PORTAL_USER;
3
4
--創(chuàng)建用戶表
5
CREATE TABLE T_PORTAL_USER
6
(
7
id NUMBER PRIMARY KEY, -- 用戶表示
8
username VARCHAR2(24) NOT NULL,-- 用戶名
9
password VARCHAR2(24) NOT NULL,-- 密碼
10
realname VARCHAR2(24) NOT NULL,-- 真實(shí)姓名
11
sex VARCHAR2(2) DEFAULT '0',-- 性別 "0":Male "1":Female
12
registerDate TIMESTAMP NOT NULL,-- 注冊日期
13
state VARCHAR2(2) NOT NULL -- 賬號狀態(tài) "0":啟用 "1":注銷
14
)
15
16
--刪除用戶表序列
17
DROP SEQUENCE SEQ_T_PORTAL_USER;
18
19
--創(chuàng)建用戶表序列
20
CREATE SEQUENCE SEQ_T_PORTAL_USER
21
START WITH 1
22
INCREMENT BY 1
23
NOMAXVALUE
24
CACHE 20
-- 批量新增一萬條用戶
1
-- 批量新增一萬條用戶
2
CREATE OR REPLACE PROCEDURE PROC_USER_CREATE_BAT
3
AS
4
startTime VARCHAR2(32);--開始時(shí)間
5
endTime VARCHAR2(32);--結(jié)束時(shí)間
6
BEGIN
7
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff') INTO startTime FROM DUAL;
8
DBMS_OUTPUT.PUT_LINE('Start Time: '||startTime);
9
FOR i in 1..10000 LOOP
10
INSERT INTO T_PORTAL_USER VALUES(SEQ_T_PORTAL_USER.NEXTVAL,'owen'||i,'123456','gekunjin'||i,'0',sysdate,'0');
11
END LOOP;
12
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff') INTO endTime FROM DUAL;
13
DBMS_OUTPUT.PUT_LINE('End Time: '||endTime);
14
END PROC_USER_CREATE_BAT;
posted @
2010-11-27 14:41 absolute 閱讀(3698) |
評論 (1) |
編輯 收藏
摘要: 在項(xiàng)目中使用Apache開源的Services Framework CXF來發(fā)布WebService,CXF能夠很簡潔與Spring Framework 集成在一起,在發(fā)布WebService的過程中,發(fā)布的接口的入?yún)⒂行╊愋椭С植皇呛芎茫热鏣imestamp和Map。這個(gè)時(shí)候我們就需要編寫一些適配來實(shí)行類型轉(zhuǎn)換。
Timestamp:
1/** *//**
&n...
閱讀全文
posted @
2010-11-27 14:28 absolute 閱讀(3423) |
評論 (1) |
編輯 收藏
Web應(yīng)用初始化Spring容器策略
以下軟件測試環(huán)境為Spring,Struts1
1、通過struts1提供的插件機(jī)制,采用Spring提供的ContextLoaderPlugIn
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<global-exceptions />
<global-forwards />
<message-resources parameter="com.portal.ApplicationResources" />
<!-- 通過S1提供的插件機(jī)制來初始化Spring容器,加載Spring配置文件
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<!--
1、ContextLoaderPlugIn默認(rèn)加載配置文件命名規(guī)則是actionServlet-servlet.xml,其中actionServlet
是配置org.apache.struts.action.ActionServlet時(shí)指定的servlet名稱
2、通過配置contextConfigLocation屬性來指點(diǎn)Spring配置文件的位置,多個(gè)配置文件可以使用 逗號","、分號";"、空格" "
-->
<set-property property="contextConfigLocation"
value="/WEB-INF/conf/spring-application.xml,/WEB-INF/conf/**/spring*.xml" />
</plug-in>
-->
</struts-config>
2、采用Spring提供的ContextLoaderListener來初始化(應(yīng)用服務(wù)器需要支持Listener,Servlet2.3版本及以上)
<context-param>
<description>通過配置contextConfigLocation屬性來指點(diǎn)Spring配置文件的位置,多個(gè)配置文件可以使用 逗號","、分號";"、空格" "</description>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/conf/spring-application.xml /WEB-INF/conf/**/spring*.xml</param-value>
</context-param>
<listener>
<description>通過ContextLocaderListener來初始化Spring容器,加載Spring配置文件</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3、采用load-on-startup Servlet 來初始化Spring容器
<servlet>
<description>
通過load-on-startup Servlet來初始化Spring容器
該如何Servlet 用于提供"后臺"服務(wù),作為容器管理應(yīng)用中的其他bean,不需要響應(yīng)客戶請求,因此無須配置servlet-mapping
</description>
<servlet-name>applicationContext</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
posted @
2010-09-13 18:10 absolute 閱讀(2268) |
評論 (0) |
編輯 收藏