准备写一个应用,但请教一下大家,是作业还是触发器的效率、消耗方面,哪种更好一些呢?该应用使用数据库邮件来发送邮件,有一张表,字段就是收件人、抄送、密送、主题、内容和发送时间,现在想使用二种方法:1、写一个作业,每一分钟或二分钟运行一次,select * from 表 where 发送时间 <= getdate() and 发送标志 = 未发送,然后用游标方式将每一封信发出,并update 发送标志 = 已发送,如果是需要实时发送的邮件,就把发送时间向前写一个小时再插入;2、再建一张表,在那张表上建立一个触发器,如果是实时发送的邮件,就直接插入这张表中,然后是延时发送的邮件,还是按第一种方法,但就不用再考虑发送,只是将select出来的数据插入到这张表。邮件量不会太大,一是员工不多,现阶段是三百多人,如果全面推广也有是五千多人使用,其次这个应用主要用于事务提醒及工作进度邮件通知。大家认为哪种方法更好一些,或者还有更多的好办法吗?

解决方案 »

  1.   

    顯然你要做實實發送只有用觸發器
    就效率而言必然是1-2分鐘集中發送一次來得高
    還有對MSSQL來説5000人不是小數目
    特別是C/S模式,,,若還好率附件上傳得話
      

  2.   

    回一楼,不用带附件,只是通知一下某时有某事及“请及时处理某事”,而且也不是C/S模式,是B/S模式,由asp和asp.net网站根据使用者的需求插入表中的,因此我想用数据库邮件应该可以了吧回二、三楼,请教一下,用什么方式会更好一些呢?谢谢
      

  3.   

    不如直接在asp网站上,操作后,发送mail
    也就是说,用程式来发送比較好
      

  4.   

    我觉得,用俩个都不怎么好.如果用作业且数据太多,2分钟内处理不完,新作业倍启动,就处于竞争状态了.触发器更不好.建议楼主写一个送信的工具,用C#或者VB都可以,用这个程序来发信,效果比较好.
      

  5.   


    是啊,我在一个客户那里也搞了一个用sql server 来发邮件的东东。大约是一天400条的量,结果是经常的邮件发不出去。大约只有70%左右的邮件成功发出了。
      

  6.   

    sql server2005有这种功能,最好还是不用它!为什么有专门的邮件系统能。