首页
学习
活动
专区
圈层
工具
发布

一个可用于生产项目 基于 .NET 6 自研ORM

一、前言 Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer Oracle MySql PostgreSql Sqlite 优点:体积小、可动态切换不同实现类库...、原生支持微软特性、流畅API、使用简单、性能高、模型数据绑定采用 委托、强大的表达式解析、支持多种子查询可实现较为复杂查询、源代码可读性强。...>() { "123", "456" })).ToList(); // 方式3 需要动态更新IN值 使用这种 var list = new...db.Ado.DbProviderFactory.CreateConnection(); // var cmd = conn.CreateCommand(); // 封装的方法分别以...// 当有非常复杂的查询 ORM不能满足需求的时候可以使用原生Ado满足业务需求 // 构建数据集核心扩展方法 分别有 FristBuild ListBuild DictionaryBuild

60430

SQL函数 TRIM

或者,可以使用 LTRIM 修剪前导空白,或使用 RTRIM 修剪尾随空白。要使用前导或尾随空格或其他字符填充字符串,请使用 LPAD 或 RPAD。...可以使用 LENGTH 函数来确定是否已从字符串中删除或添加空格。要剥离的字符所有字符:如果字符包含 string-expression 中的所有字符,则 TRIM 返回一个空字符串。...空格:如果省略字符,TRIM 会从字符串表达式中修剪空格。如果指定了字符,则必须包含空格字符以去除空格。...%List:如果 string-expression 是 %List,TRIM 只能修剪尾随字符,不能修剪前导字符。这是因为 %List 包含前导编码字符。...示例以下示例使用 end_keyword 和 characters 默认值;它从“abc”中删除前导和尾随空格。选择项将“^”连接到字符串的两端以显示空白。

3.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大模型的模型压缩与有效推理综述

    兼容性函数通常是点积函数,其中权重是查询与相应的键的点积,√d是缩放因子。多头注意力将输入标记映射到h个不同的查询、键和值({Qi,Ki,Vli∈[1,h]}),然后使用不同的线性层。...量化生成的中型语言模型。尽管对BERT类模型进行量化的方法取得了成功,但在生成语言模型(如GPT、BART)出现之前,对生成式LLM进行量化的尝试却很少见。...LLM-QAT 直接应用基本的 QAT 框架到 LLM,并使用数据生成方法生成数据,然后使用原始 LLM 对生成的数据进行训练,以匹配量化 LLM 的输出分布。...这些方法可单独或组合使用,如GBLM-Pruner结合了基于幅度和基于正则化的方法以获得更好的剪枝效果。 动态/静态剪枝:动态/静态剪枝是指在训练过程中对模型进行剪枝的方法。...此外还有还有其他方法生成特定的强化数据集,例如使用符号知识折衷为常识模型获得高质量的常识知识图谱,DISCO使用LLM获取反事实数据并过滤以获得高质量数据集以提高学生在NLI任务中的能力,PubMedBERT

    1.4K10

    CDP中的Hive3系列之Hive性能调优

    性能调优的最佳实践 查看与配置集群、存储数据和编写查询相关的某些性能调优指南,以便您可以保护集群和相关服务、自动扩展资源以处理查询等。...orc.bloom.filter.columns -- 必须为其创建布隆过滤器的以逗号分隔的列名称列表。 orc.bloom.filter.fpp 0.05 布隆过滤器的误报概率。...您必须了解什么是分区修剪、如何启用动态分区以及批量加载数据所需的配置,以确保显着提高性能。...大型部署可以有数以万计的分区。当 Hive 在查询处理期间发现分区键时,会间接进行分区修剪。例如,加入维度表后,分区键可能来自维度表。查询按分区过滤列,限制对一个或几个匹配分区进行的扫描。...当 WHERE 子句中存在分区键时,会直接进行分区修剪。分区列是虚拟的,不会写入主表,因为这些列对于整个分区是相同的。 您不需要指定动态分区列。如果启用动态分区,Hive 会生成分区规范。

    2K20

    .NET 表达式树

    IQueryable/IQueryable 和表达式树 IQueryable有两个组件 Expression:当前查询的组件的与语言和数据源无关的表示形式,以表达式树的形式表示。...Provider:LINQ 提供程序的实例,它知道如何将当前查询具体化为一个值或一组值。 在动态查询的上下文中,提供程序通常会保持不变;查询的表达式树将因查询而异。...达式树是不可变的;如果需要不同的表达式树并因此需要不同的查询,则需要将现有表达式树转换为新的表达式树,从而转换为新的 IQueryable。...从表达式树中使用运行时状态 内部表达式树以及查询尚未修改;查询只返回不同的值,因为 length 的值已更改。...LambdaExpression 具有两个组件: 参数列表 (string x) 由 Parameters 属性表示。 主体 x.StartsWith("a") 由 Body 属性表示。

    52540

    MySQL表分区实战指南:高效管理亿级大表的秘诀

    列表分区(LIST Partitioning) 列表分区依据离散的列值列表划分数据,适用于分类明确的数据,如按地区、状态码分区。语法使用PARTITION BY LIST,并显式定义值列表。...优点包括精确的数据分布和高效的点查询。缺点是无法处理未知值(除非使用DEFAULT分区),且列表变更需重构分区,灵活性较低。...实际应用中,可结合多种类型,如先按范围分区再子分区(复合分区),以平衡查询效率和数据管理。例如,电商订单表可先按年份范围分区,再按地区列表子分区,优化时间和地域查询。...查询改写与分区修剪 分区修剪是分区表的核心优势,它允许MySQL自动跳过不相关的分区,减少数据扫描量。但并非所有查询都能触发修剪。例如,使用函数或复杂表达式可能绕过修剪机制。...避免这一问题的关键是在查询设计中强制使用分区键条件,并通过EXPLAIN分析执行计划以确保分区修剪生效。此外,结合合适的索引策略(如在每个分区上建立局部索引)可以进一步减少扫描范围。

    47110

    EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER(翻译)优化器架构

    Columbia接受一个初始的查询文本文件作为输入,使用由DBI提供的 Catalog 和 成本模型信息,生成查询的最优计划作为输出。...物理列表中的物理子树仅被扫描以检查所需属性是否满足并直接计算成本,逻辑列表中的逻辑子树仅被扫描以查看是否已触发了所有适当的规则。只有当一个规则之前未应用于一个表达式时,才对逻辑表达式进行优化。...显然,Columbia中优化组的方法优于Cascades中的方法,并且通过在组中分离逻辑和物理链接列表来实现。 更好的获胜者结构。动态规划和记忆化的关键思想是保存搜索的获胜者以供将来使用。...O_GROUP任务还创建了另外两种类型的任务来生成和优化组中的表达式:O_EXPR 和 O_INPUTS。 该任务使用动态规划和记忆化技术。...图片 下界组修剪是安全的,也就是说,使用这种修剪技术的优化器会生成最优计划。

    80530

    LINQ to SQL集成到应用程序中需考虑的一些问题

    SQL语句是利用TOP和嵌套子查询, 这种方法已经被证明是比较高效的做法(相比于临时表的做法), 所以完全有理由可以一试.到这里, List, IQueryable, IQueryable都没有任何问题.... 3、需要一个动态排序功能, 这里List的局限性出来了, 传统的做法可能需要用一个dynamic参数来传递需要排序的列然后到SP当中来执行, 但我们已经不打算使用SP了, 也没有动态sql语句,...首先List的话, 我们不知道到底哪个字段要排序, 如果使用字符串作为参数的话, 例如放一个string sortBy作为方法的参数, 那么在方法体内就需要做if…else或者switch的判断, 而且还要考虑倒序还是正序的排序要求..., 而且你还要hard code,很明显麻烦来了.然而如果使用IQueryable却可以很好的解决所有的这些问题. ...但是IQueryable不能跨assembly, 一旦跨了assembly的话, 你无法使用var来引用匿名类里面的property, 绑定到control是没有问题的, 但是客户端的动态查询却成了问题

    1.7K60

    Asp.Net Core 扩展 Linq,简化自定义

    c# 扩展方法 在 Asp.Net Core 开发中或者其他的后端开发中都会有一个需求(尤其对于中台或者后台管理),那就是展示数据列表;当然不是普普通通的数据列表展示,而是需要进行排序、分页、查询关键字来获取列表...甚至在有些时候需要三个同时处理来更精确的筛选数据,而对于 Asp.Net Core 来说,用的语言是 C#,是一门强类型语言,在许多时候具有很大便利性,但是正因为这种原因,在某些时候却不太方便使用,需要进行额外方式来进行处理...出来属性进行查询的,但是实际使用中,从前端传递过来的一般都是字符串 "Name",而在后端进行查询时,以目前方式是无法将属性的key写到where函数中,也就无法执行查询通过"Name"来过滤数据;如果通过...","SerarchKeyword").OrderBy("PropertyName",1); } 更进一步 当然在上面我们也定义了通用的查询条件,那么我们直接也可以再进一步扩展,来达到更好的使用方式 public...方便使用,规范查询数据

    2.2K10

    【Linux系统编程】(十八)手搓 Linux Shell 命令行解释器:从 0 到 1 打造属于你的终端神器

    终端 I/O 操作:使用fgets、printf等函数读取用户输入、打印输出,处理终端缓冲区、换行符等问题; 字符串处理:使用strtok、strcpy、strcmp、memmove等函数实现命令行的拆分...2.2 步骤 2:实现命令行解析功能(拆分命令与参数) 用户输入的命令行是一个完整的字符串(如ls -l /home),我们需要将其拆分为命令名和参数列表(如{"ls", "-l", "...这里我们使用strtok函数实现字符串拆分,strtok可以按照指定的分隔符(这里是空格、制表符)拆分字符串,返回拆分后的子字符串指针。...:命令名=pwd,参数个数=1 参数列表:pwd 核心知识点解析 strtok函数的使用:strtok是字符串拆分的核心函数,第一次调用时传入要拆分的字符串和分隔符,后续调用时第一个参数传NULL,表示继续拆分上一次的字符串...argv数组的格式要求:exec函数族要求参数数组argv必须以NULL结尾,这是因为exec函数需要通过NULL来判断参数列表的结束,否则会出现未知错误。

    18510

    解决Entity Framework查询匿名对象后的跨域访问的一种方式

    在Entity Framework中,可以使用lambda表达式进行对数据的查询,而且可以将查询结果直接映射为对象或者对象列表,这极大的提高的开发速度,并且使数据层的数据更加方便处理和传递。...但是很多时候,我们不需要把整个表的字段都查出来,如果我们直接把整个数据实体查询出来,就极大的影响了性能,所以我们需要通过查询匿名对象或者已经定义的方式,对数据库进行查询; 1.实例使用的数据实体类: public...,可以这样做,让它直接生成CategoryView的列表: var data1 = from c in context.Categoriees select new CategoryView...3.目前为止我所知的最好的跨域访问方式 在c#4.0中,加入了dynamic特性,这使得我们可以使用它支持对动态类型的解释,虽然c#语言绝对是静态类型的,但是dynamic通过在编译的时候,不推断出具体类型...UI层链接的服务层,我仍然推荐使用查询ViewModel的方式

    1K30

    .NET深入解析LINQ框架(三:LINQ优雅的前奏)

    那么很大一部分应用场合中我们需要根据用户的选择来查询数据源,以往我们都是通过判断的方式来拼接查询的SQL字符串,但是现在我们面对是强类型的LINQ查询,是否可以很方便的进行类似查询。...其实也没有什么好神秘的,基本的实现原理是通过动态的构建表达式树来实现IQueryable接口的查询。...其实动态LINQ查询所能执行的最关键的因素在于Expression对象是可以被动态编译成可以执行的委托对象,委托对象是完全可以被直接使用的可执行代码段,这就为动态LINQ查询提供了基础。...这样就可以消除IEnumerable、IQueryable这两个接口之间的动态查询瓶颈。...动态语言运行时是在.NET4.0中引入的建立在CLR之上的运行时环境,目的是为了在静态语言中能够借鉴动态语言运行时的优点,比如强大的类型随意变换,这点在设计应用开发框架时尤其重要,任何一个好的特性都需要大面积的使用模式才能变的更完美

    2.2K20

    Hive性能加速秘籍:分区表创建全解析,从静态到动态实战指南

    它通过类SQL的查询语言(HiveQL)让用户能够高效地处理海量数据,而无需深入底层MapReduce的复杂性。然而,随着数据量的爆炸式增长,查询性能的优化变得至关重要。...这种“分区修剪”(Partition Pruning)机制是Hive查询优化的基石。...例如,如果分区键是基于用户行为动态生成的,静态分区会导致手动操作繁琐且容易出错。在这种情况下,动态分区可能是更好的选择。...分区表优化技巧与常见问题解答 优化策略:分区修剪与索引结合 分区修剪(Partition Pruning)是Hive查询优化中的一项关键技术,它能够在查询执行时自动跳过不必要的分区,从而减少数据扫描量。...需根据数据量和查询模式权衡,一般建议单个表的分区数不超过1万。 分区字段类型:优先使用字符串或整数类型,避免复杂类型(如Array),以减少元数据管理复杂度。

    28910

    人大提出新模型,将Two Stage的Video Paragraph Captioning变成One Stage,性能却没下降

    在本文中,作者提出了一个一阶段的段落字幕模型,避免了事件检测阶段,直接为未修剪的视频生成段落描述。为了描述连贯和多样化的事件,作者提出使用动态视频记忆来增强时间维度的Attention。...通过逐步暴露新的视频特征,抑制过度访问的视频内容,来控制模型的视觉焦点。 此外,作者还提出了多样性驱动的训练策略,以提高语言角度的多样性。...考虑到未修剪的视频通常包含大量冗余的帧,作者进一步用视频编码器提取关键帧,以提高效率。...为了使得模型对不同连贯事件进行有效描述逻辑的学习,作者提出通过动态视频记忆来改进传统的时间维度注意力 ,以跟踪和控制视频中的视觉注意力。...Diversity-driven Training 动态视频记忆机制可以帮助模型描述不同的视频内容,而不同的语言表达也对段落的生成至关重要。

    97250

    Bash处理字符串系列函数(一)

    文章目录 修剪字符串的前导和尾随空格 修剪字符串中的所有空白并截断空格 在字符串上使用regex 修剪字符串的前导和尾随空格 这是sed、awk、perl和其他工具的替代品。...下面的函数通过查找所有前导和尾随空格并将其从字符串的开头和结尾移除来工作。 内置的:用来代替临时变量。...name=" John Black " $ trim_string "$name" John Black 修剪字符串中的所有空白并截断空格 这是sed、awk、perl和其他工具的替代品。...在字符串上使用regex bash正则表达式匹配的结果可以用于替换大量用例中的sed。 警告: 这是为数不多的依赖于平台的bash特性之一。 bash将使用用户系统上安装的任何regex引擎。...如果以兼容性为目标,请坚持使用POSIX正则表达式特性。 警告: 本例仅打印第一个匹配组。当使用多个捕获组时,需要进行一些修改。

    1K10

    综述 | 揭秘高效大型语言模型:技术、方法与应用展望

    例如,多查询注意力(MQA)和分组查询注意力(GQA) 分别共享一组KV或多个KV头的线性变换,从而减少计算复杂度。这些方法在保持较高性能的同时,显著降低了计算和内存需求。...通过将模型划分为不同部分并分配到不同存储级别,EdgeMoE能够在推理过程中实现高效的资源利用。 S3 S3系统通过预测输出序列的长度并根据预测结果规划生成请求,以优化设备资源的使用。...压缩向量:将提示转换为紧凑的向量表示,如使用BERT等模型生成的句子嵌入。 结构化提示:设计结构化的提示格式,以便模型能够更高效地处理输入。这可能包括使用特定的语法规则或标记。...强化学习:使用强化学习技术训练LLMs生成高质量的提示。这通常涉及与环境(如用户或其他LLMs)的交互,以便根据反馈优化提示。 生成模型:利用生成模型(如GPT系列)为特定任务创建提示。...它提供了数据并行、模型并行、流水线并行等技术,并采用了一种模块化设计,以实现高效的算法和资源管理。ColossalAI还支持混合精度训练、梯度累积、动态并行等优化方法,以提高训练效率。

    2.1K12

    PyTorch 2.2 中文官方教程(十四)

    所有这些方法都有一个共同的模式:它们在使用参数之前以适当的方式转换参数。在第一种情况下,它们通过使用将矩阵映射到正交矩阵的函数使其正交。在权重和谱归一化的情况下,它们通过将原始参数除以其范数来实现。...然后,指定要在该模块内修剪的模块和参数的名称。最后,使用所选修剪技术所需的适当关键字参数,指定修剪参数。 在这个例子中,我们将在conv1层的名为weight的参数中随机修剪 30%的连接。...模块作为函数的第一个参数传递;name使用其字符串标识符在该模块内标识参数;amount指示要修剪的连接的百分比(如果是 0 和 1 之间的浮点数),或要修剪的连接的绝对数量(如果是非负整数)。...生成的图库 (beta)LSTM 单词语言模型上的动态量化 原文:pytorch.org/tutorials/advanced/dynamic_quantization_tutorial.html...因此,我们将简单地将一些预训练权重加载到这个模型架构中;这些权重是通过在单词语言模型示例中使用默认设置进行五个时期的训练获得的。

    97710

    使用Elasticsearch进行基于图的 RAG

    本文探讨了如何利用Elasticsearch高效地实现基于图的RAG,通过动态构建和修剪针对用户查询的知识子图,并将其线性化以供LLM使用,从而在不需要额外基础设施的情况下,实现可扩展性和精确性,为基于事实的...3) 将查询转换为图查询受到文本到SQL技术的启发,这种方法将用户的自然语言查询转换为图数据库查询(例如,使用Neo4j的Cypher)。然后执行图查询以提取最相关的子图供LLM处理。...图2: 用户查询中的命名实体和概念识别2) 使用Elastic生成相关的知识子图既然我们已经从用户的问题中提取了最相关的实体,如果有多个实体,我们可以查询图以确定它们是否紧密连接。...我们利用这种能力,通过以下过程迭代扩展来自查询实体的搜索:检查两个实体是否连接:首先检查两者之间是否存在直接关系。如果没有,使用过滤查询,我们检索连接到任一实体的节点列表。...这种策略使我们能够动态生成仅与用户查询相关的节点和边的子图。最终连接这两位政客。3) 图修剪这个子图(几百个关系)小到足以进行非常便宜的图操作,但仍然太大,无法直接提供给LLM生成答案。

    1.1K21
    领券