咱們來玩樂透開獎模擬吧! (MS SQL Server版)



贊助商連結


mingsheu
2002-02-24, 08:48 AM
這幾天,無聊之下,做了這個玩意,要注意的是,這個是only for SQL Server 2k的而以
(SQL 7 沒試過)。

安裝:
各位將附件檔下載後用SQL Server的Query Analyzer開啟後執行即會在MS SQL上建立一個
資料庫,內含六個Tables & 兩個Store Procedure,此時就完成了安裝動作了。

用法:
1.請在Query Analyzer下執行,記得得先把使用的DB選為 Lotto 喔。
2.先建立Lotto投注資料,在Query Analyzer下鍵入exec create_rnd_lotto 10000,n,
表示系統將建立10000筆的投注資料,第二個參數是指不清除已存在的投注資料,若要
重新建立投注資料請下 exec create_rnd_Lotto 10000,y ,系統即會先行清除原有的
投注資料。
3.當資料筆數已經足夠,就可執行下列指令,exec cacl_bingo 1,2,3,4,5,6,spec ,即
可進行對獎指令,其中 1 ~ 6 是指六個開獎號碼,可不依順序,第七個參數是指特別
號。
4.當第三點執行完畢後,可開啟db內的 first, second, third, forth, fifth五個資料
表,依序為頭彩, 二獎, 三獎, 四獎, 五獎的投注資料。

測試:
硬體平台: MSI 694D V1.0, PIII 933 oc 1G (143mhz), Ram 1G (108mhz), AHA 29160,
Seagate 4G, 7200RPM SCSI * 4
軟體平台: WinXP Pro, SQL 2k Developer 中文版

建立時間: 建立1萬筆資料約8秒,10萬筆資料約1:20,100萬筆約13:00
對獎時間: 100萬筆約3:56,1000萬筆約23:58

結論:小弟的時間都卡在Disk I/O上,因為這幾顆雖是SCSI,都讀寫都不超過10MByte/Sec
,所以:( ,不過,SQL Server亦可處理1000萬筆的資料,雖然我的table定的很簡單。;)
在這小弟的方法應該是最笨的方法,大家一起來腦力激盪吧..

PS. 找不到適合的版,只好.... 丟這大家有閒時聊聊囉。

贊助商連結


mingsheu
2002-02-25, 09:56 AM
修正Bug,對獎程式在四獎部份少了五種組合且有一種組合重覆了,
所以......:D