一些 SQL Server 的小技巧

记得备份!备份!备份! 以下我会记录一些我在实际工作中遇到的或者看到别人记录下的关于 SQL Server 的用法和小技巧。文章会不定期的更新。 临时表结构的创建 1 2 -- 可以用于构建临时表的表结构 select top 0 a, b, c into #d from e 临时表的一些优化方式 临时表可以添加索引或者直接增加主键或复合主键来提升性能。 判断表是否为空 1 2 -- 可以用来判断表里还有没有数据 select 1 from a 大批量数据的生产环境更新 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 -- 建立表 select top(0) sod.

Using Docker (Compose) to host SQL Server AdventureWorks DB

Recently, I am learning the SQL Server performance tunning and the book I am using is using the AdventureWorks database as the sample database. And I don’t want to install the SQL Server Engine in my Surface, not even the Express version. So I am thinking about using the Docker to host my database.

《SQL Server 性能调优实战》笔记 1

T-SQL 语句编写的一些简单方针 编写语句前,一定要了解业务需求。 确定过滤字段能否使用索引,是否合理。重复率是一个指标,可以通过查询统计信息获得。 不要对有索引的字段使用任何计算,包括函数。 小表操作优先,用小表驱动大表。执行计划里尽量是 NESTED LOOP。 只返回必要的字段。 保持 SQL 语句简单。 只简单的存在 2~4 个表的关联。 不要有复杂的过滤条件,只有 2~3 个条件判断。 越复杂的语句在业务量大的系统中,越会有“变异”的可能性。适度考虑用固定执行计划 如果要 order by 的话,尽量使用有索引的字段进行。 不要遗漏 join 关键字,不然的话容易发生笛卡尔积。 SELECT 语句 只查询需要的字段。 限定查询的结果集的大小。 高效的使用和建立索引来提高性能。 ORDER BY/DISTINCT/GROUP BY 从索引的角度分析 1 2 3 4 5 6 7 8 9 USE AdventureWorks2019 GO SELECT sod.

Surface Go2 M3 LTE 版本使用感受

为了能在地铁上看看文档并且同时处理一些简单的事物,我购买了目前唯一一款全新的能支持 4G LTE 的 Surface 设备。 Surface Go2 购买 以下是一些可供选择的购买配置 我选择的是最高配的版本,因为我想顺带能连接家里的两台 4K 显示器。 多显示器 默认情况下,通过 Surface Go2 自带的一个 Type-C 接口,只能连接一台 4K 显示器 (60Hz 频率)。需要通过扩展坞才能实现多台显示器的连接。通过实际体验和理论参数配对,排除了一下几款。 最终,我打算购买微软官方的新版 Surface Dock。以下是一些微软官方的支持参数链接。 扩展坞的要求和参数 第二块显示屏的扩展要求 性能体验 以下是我的 Surface 的任务管理器的截图。总体来说能满足大部分的使用场景。 我按照主力机的软件安装列表,挑选了一些常用的编程软件进行安装和使用。综合来说,如果是大型的 IDE 的话,比如 Visual Studio,JetBrains 全家桶的话,启动会有些慢,但是一旦启动完,编译和浏览代码的体验还是可以接受的。当然不能和搭载酷睿处理器的电脑进行比较,不过日常轻度使用还是没有任何问题的。这篇文章就是我用 Visual Studio Code 在 Surface Go2 上编辑的。

移除 Git 里面的 Submodule

最近在整理我的博客项目中,用到了 hexo 的 next 主题,因为主题的原作者仓库的地址发生了变化,所以我也相应的 fork 了新的仓库,从而需要更新已有的博客项目中的 module 引用。下面我把步骤列出,以备后用 :) 移除已有的 module 移除 .gitmodules 文件夹 1 2 cd <project-root-path> rm .gitmodules Stage 刚才的修改 1 2 cd <project-root-path> git add .gitmodules 修改 .git/config 文件的内容 删除所有和你想删除的 module 的相关行 [submodule "vendor"] url = git://github.com/SharryXu/hexo-theme-next.git 通过 git 命令来移除 submodule 1 git rm --cached path/to/your/submodule 物理移除在 .