全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1499
推到 Plurk!
推到 Facebook!

temp table的问题

尚未結案
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-18 19:58:51 IP:61.164.xxx.xxx 未訂閱
请教各位大大: 当希望通过database中几个table形成一个新的table时,可能要经过好几步的操作,如先形成table1,再形成table2,最后才形成我需要的table,在此情况下,这些临时的table1,table2该如何处理呢? 放在database中吗? 在sql server中好象可以通过temp table来解决, 但在别的database中呢? thank you very much!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-18 21:18:56 IP:61.62.xxx.xxx 未訂閱
Hi, temp table 在該 CONNECTION 結束時, 會自動釋放, 並不會有維護上的問題, 但是一般來說, 都還是建議在使用後不用時, 要將其釋放掉, 利用 DROP TABLE #XXX_TABLE 的方式處理. 在不支援 TEMP TABLE 的資料庫中, 可以利用新增實體資料表的方式來當作臨時表, 但問題會在於實體表的名稱會有重覆的危機, 必須要自己命名妥善, 以免造成錯誤. 而且一定要在不使用時刪去, 以免佔用在資料庫之中. 若是遇到計算大量且複雜時, 建議你使用 STORED PROCEDURE 來做處理, 而 TEMP TABLE 也由 STORED PROCEDURE 來維護, 一方面增進效能, 另一方面也避免資料直接由 CLIENT 與 SERVER 往來, 造成不必要的網路資源浪費. 當然, 重點仍在於計算大量且複雜, 用 SOTRED PROCEDURE 是比較理想的方法.
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-19 08:45:31 IP:210.65.xxx.xxx 未訂閱
Hi:    因公司內部大部分使用的 DataBase 為 Oracle,無法使用如 SQL Server 如此便利之 Temp Table,Stored Procedure 中要去動態指定 Temp Table 名稱,又有困難,因此衍生出另一種方法    1.產生一個 Function 來作回序號產生器,當程式呼叫時即回傳一個數字給程式(有點類似去銀行抽號碼牌),或由其它法取得唯一值以作為判斷 2.Temp Table 中保留一個欄位,用來儲存該序號,程式中僅對自己所屬序號之資料進行處理 3.程式結束時,將自己所屬序號之資料予以刪除 4.定時檢查該 Temp Table 並將該Table 予以 Truncate 掉(是Truncate 而不是 Drop),避免程式不正常中斷,所殘餘之資料流於其中 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-19 08:52:44 IP:218.72.xxx.xxx 未訂閱
timhuang大大: 您好!非常感谢,但还有一些我想问得再细一些, “在不支援 TEMP TABLE 的資料庫中, 可以利用新增實體資料表的方式來當作臨時表,”,那如果在c/s结构中,有多个client操作,是否会冲突呢? “若是遇到計算大量且複雜時, 建議你使用 STORED PROCEDURE 來做處理, 而 TEMP TABLE 也由 STORED PROCEDURE 來維護。”能说得再详细一些吗?怎样避免冲突? 小弟入行还短,谢谢各位大大!也非常感谢fishman大大给我的建议! 發表人 - luowy651 於 2004/01/19 09:00:40
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-19 09:04:38 IP:210.65.xxx.xxx 未訂閱
Hi:    luowy651,Sorry 只顧回應 timhuang 大大的文章,回覆內容有點離題 若你的資料庫有 > -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-19 09:27:41 IP:218.72.xxx.xxx 未訂閱
fishman大大: 您好!非常感谢您的热心帮助!!我想再问一下,使用cursor在c/s中应该可以解决冲突问题吧。 thank you very much!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-19 09:52:27 IP:210.65.xxx.xxx 未訂閱
Hi:    
引言: 使用cursor在c/s中应该可以解决冲突问题吧。
Cursor 一般適用在 DataBase 的 Stored Procedure 中,且只是取代掉原先 Table1 與 Table2 的地位,本身就不會有資料衝突問題,問題應該在你最後所要產生的 Table 中 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-19 10:12:53 IP:203.95.xxx.xxx 未訂閱
引言: “在不支援 TEMP TABLE 的資料庫中, 可以利用新增實體資料表的方式來當作臨時表,”,那如果在c/s结构中,有多个client操作,是否会冲突呢? “若是遇到計算大量且複雜時, 建議你使用 STORED PROCEDURE 來做處理, 而 TEMP TABLE 也由 STORED PROCEDURE 來維護。”能说得再详细一些吗?怎样避免冲突?
避免衝突的作法, 在 Fishman 兄的第一篇回文中已說明的相當詳細, 請再仔細閱讀!! 若是你對於操作 temp table 還有不明白的地方, 建議你將問題描述得更詳細一些, 如使用的資料庫為何? 用途? 要用 temp table 的原因? 或是要達到什麼樣的功能等, 這樣好讓大家幫你解答!!
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-19 11:01:48 IP:218.72.xxx.xxx 未訂閱
Timhuang大大及其它大大: 您们好! 我主要是对c/s结构的database操作不太了解,我们公司购买了一套c/s购销软体,由于其是标准化软体,有些报表并不完全适合我们公司,但其数据库结构是开放的,因此我需要跟据我们公司的特点从此database中抓取data,设计一些符合公司个性化的table软体并在前台显示出来,还能导出成excel等格式,但在设计这些个性化的table时,并不是一步就可以出来的,需要先成为table1,再成为table2....,到最后才能形成我所想要的table,由于client很多,为避免冲突,我现在的做法是在每一个client机上建一个temp_client的database,把这些临时table1,table2...放在client上做,最后形成的table也放在各自的client上,但我觉得这方法肯定不是好方法,所以我很想知道那些商品化的c/s购销软体是怎么做的?我用的是sql server和delphi,同时我也想知道其它database是怎么做的? 不胜感激!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-19 11:20:26 IP:210.65.xxx.xxx 未訂閱
Hi:    luowy651,你真是問對人了,timhuang 大大是這方面的專家,請參考它的文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43682 SQL Server 我不太熟,所以..... -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
系統時間:2024-06-29 16:23:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!