[技术]-没有 ORM 的架构

296 天前
 PendingOni
USE [lysk2]
GO
    /****** Object:  StoredProcedure [dbo].[P_EvacuateNodes]    Script Date: 2023/11/30 8:25:41 ******/
SET
    ANSI_NULLS ON
GO
SET
    QUOTED_IDENTIFIER ON
GO
    ALTER proc [dbo].[P_EvacuateNodes] @node int = 999 as begin truncate table CalStartTab;

EXEC P_CalculateStartProc @node;

truncate table CalEndTab;

EXEC P_CalculateEndProc @node;

truncate table EvacEvenNodesTab;

insert into
    EvacEvenNodesTab
SELECT
    tp.*
FROM
    (
        SELECT
            TOP 100 PERCENT ROW_NUMBER() OVER (
                partition BY ddid
                ORDER BY
                    wtime
            ) AS rowNum,
            sid,
            tid,
            ygid,
            wtime,
            ddid
        FROM
            WFRecord
        WHERE
            id IN (
                SELECT
                    id
                FROM
                    WFRecord wf
                    INNER JOIN CalStartTab s ON wf.ddid = s.ddid
                    INNER JOIN CalEndTab e ON wf.ddid = e.ddid
                WHERE
                    (
                        sid = @node
                        OR tid = @node
                    )
                    AND wtime >= s.minTime
                    AND wtime <= e.maxTime
                GROUP BY
                    wf.ddid,
                    wf.id
            )
        ORDER BY
            wtime
    ) tp
WHERE
    tp.rowNum % 2 = 0 truncate table EvacOddNodesTab;

insert into
    EvacOddNodesTab
SELECT
    tp.*
FROM
    (
        SELECT
            TOP 100 PERCENT ROW_NUMBER() OVER (
                partition BY ddid
                ORDER BY
                    wtime
            ) AS rowNum,
            sid,
            tid,
            ygid,
            wtime,
            ddid
        FROM
            WFRecord
        WHERE
            id IN (
                SELECT
                    id
                FROM
                    WFRecord wf
                    INNER JOIN CalStartTab s ON wf.ddid = s.ddid
                    INNER JOIN CalEndTab e ON wf.ddid = e.ddid
                WHERE
                    (
                        sid = @node
                        OR tid = @node
                    )
                    AND wtime >= s.minTime
                    AND wtime <= e.maxTime
                GROUP BY
                    wf.ddid,
                    wf.id
            )
        ORDER BY
            wtime
    ) tp
WHERE
    tp.rowNum % 2 = 1
end

突然翻到之前自己写的存储过程 现在看看都是头皮发麻 公司框架用的还是 .Net Framework 4.5

直接用 CYQ.Data 和数据库交互 sql 中 order by 还失效 必须先查询加载到内存后再排序

之前一直用的是 EF 或者 EF Core 也用过 SqlSugar 这样的第三方框架

3580 次点击
所在节点    程序员
27 条回复
Braisdom
296 天前
@leegradyllljjjj 差不多是这个样子,但 Agile Query 做一个报表只要几秒钟,而且还不需要二次开发,哈哈
roundgis
296 天前
@Braisdom arangodb. 感覺很少人用。穩定嗎?
Braisdom
295 天前
@roundgis 相当稳定,国外用的人很多。
Braisdom
295 天前
@roundgis 至少比 MySQL 的 Bug 少太多了
roundgis
295 天前
@Braisdom 你用社區版還是企業版 兩三年前曾經測試過 這兩個版本差別有些大 後者功能多很多
Braisdom
295 天前
@roundgis 社區版,用了好久了,基本没啥问题
roundgis
295 天前
@Braisdom 謝謝 最近有個項目打算試試用一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1023809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX