rebuild

netty : NioEventLoopGroup 源码分析

前提是你 提交于 2021-02-13 14:00:25
1. 基本思路    这里首先讲一下结论,也就是先说我看这个类的源码整理出来的思路,主要就是因为这些类太杂,一个功能在好几个类中才完全实现。    我们在 new 一个 worker/boss 线程的时候一般是采用的直接使用的无参的构造方法,但是无参的构造方法他创建的线程池的大小是我们 CPU 核心的 2 倍。紧接着就需要 new 这么多个线程放到线程池里面,这里的线程池采用的数据结构是一个数组存放的,每一个线程需要设置一个任务队列,显然任务队列使用的是一个阻塞队列,这里实际采用的是 LinkedBlockQueue ,然后回想一下在 jdk 中的线程池是不是还有一个比较重要的参数就是线程工厂,对的!这里也有这个东西,他是需要我们手动传入的,但是如果不传则会使用一个默认的线程工厂,里面有一个 newThread 方法,这个方法实现基本和 jdk 中的实现一模一样,就是创建一个级别为 5 的非 Daemon 线程。对这就是我们在创建一个线程池时候完成的全部工作!    好现在来具体说一下,我们每次创建的是 NioEventLoopGroup 但是他又继承了 n 个类才实现了线程池,也就是线程池的祖先是 ScheduledExecutorService 是 jdk 中的线程池的一个接口,其中里面最重要的数据结构就是一个 children 数组,用来装线程的。   

SQL Server 创建索引(index)

安稳与你 提交于 2021-02-11 12:45:11
索引的简介: 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。 索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 。 但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好。索引建少了,用 WHERE 子句找数据效率低,不利于查找数据。索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER 除了要更新数据表本身,还要连带立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间。 索引的分类: 索引就类似于中文字典前面的目录,按照拼音或部首都可以很快的定位到所要查找的字。 唯一索引(UNIQUE):每一行的索引值都是唯一的(创建了唯一约束,系统将自动创建唯一索引) 主键索引:当创建表时指定的主键列,会自动创建主键索引,并且拥有唯一的特性。 聚集索引(CLUSTERED):聚集索引就相当于使用字典的拼音查找,因为聚集索引存储记录是物理上连续存在的,即拼音 a 过了后面肯定是 b 一样。 非聚集索引(NONCLUSTERED):非聚集索引就相当于使用字典的部首查找,非聚集索引是逻辑上的连续,物理存储并不连续。 PS:聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。 什么情况下使用索引: 语法: CREATE [ UNIQUE

SQL Server 创建索引(index)

狂风中的少年 提交于 2021-02-11 12:44:42
索引的简介: 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。 索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 。 但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好。索引建少了,用 WHERE 子句找数据效率低,不利于查找数据。索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER 除了要更新数据表本身,还要连带立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间。 索引的分类: 索引就类似于中文字典前面的目录,按照拼音或部首都可以很快的定位到所要查找的字。 唯一索引(UNIQUE):每一行的索引值都是唯一的(创建了唯一约束,系统将自动创建唯一索引) 主键索引:当创建表时指定的主键列,会自动创建主键索引,并且拥有唯一的特性。 聚集索引(CLUSTERED):聚集索引就相当于使用字典的拼音查找,因为聚集索引存储记录是物理上连续存在的,即拼音 a 过了后面肯定是 b 一样。 非聚集索引(NONCLUSTERED):非聚集索引就相当于使用字典的部首查找,非聚集索引是逻辑上的连续,物理存储并不连续。 PS:聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。 什么情况下使用索引: 语法: CREATE [ UNIQUE

SQL Server 创建索引(index)

一世执手 提交于 2021-02-11 12:44:28
索引的简介: 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。 索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 。 但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好。索引建少了,用 WHERE 子句找数据效率低,不利于查找数据。索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER 除了要更新数据表本身,还要连带立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间。 索引的分类: 索引就类似于中文字典前面的目录,按照拼音或部首都可以很快的定位到所要查找的字。 唯一索引(UNIQUE):每一行的索引值都是唯一的(创建了唯一约束,系统将自动创建唯一索引) 主键索引:当创建表时指定的主键列,会自动创建主键索引,并且拥有唯一的特性。 聚集索引(CLUSTERED):聚集索引就相当于使用字典的拼音查找,因为聚集索引存储记录是物理上连续存在的,即拼音 a 过了后面肯定是 b 一样。 非聚集索引(NONCLUSTERED):非聚集索引就相当于使用字典的部首查找,非聚集索引是逻辑上的连续,物理存储并不连续。 PS:聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。 什么情况下使用索引: 语法: CREATE [ UNIQUE

SQL Server 创建索引(index)

走远了吗. 提交于 2021-02-11 12:44:11
from:https://www.cnblogs.com/Brambling/p/6754993.html SQL Server 创建索引(index) 索引的简介: 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。 索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 。 但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好。索引建少了,用 WHERE 子句找数据效率低,不利于查找数据。索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER 除了要更新数据表本身,还要连带立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间。 索引的分类: 索引就类似于中文字典前面的目录,按照拼音或部首都可以很快的定位到所要查找的字。 唯一索引(UNIQUE):每一行的索引值都是唯一的(创建了唯一约束,系统将自动创建唯一索引) 主键索引:当创建表时指定的主键列,会自动创建主键索引,并且拥有唯一的特性。 聚集索引(CLUSTERED):聚集索引就相当于使用字典的拼音查找,因为聚集索引存储记录是物理上连续存在的,即拼音 a 过了后面肯定是 b 一样。 非聚集索引(NONCLUSTERED):非聚集索引就相当于使用字典的部首查找

create a procedure that retrieves all indexes on my table and rebuilt

戏子无情 提交于 2021-02-07 07:43:44
问题 I want to create a procedure that retrieves all indexes on my table and rebuilt i retrieves all indexes with this query: select index_name from user_indexes where table_name='your_table_name' and i rebuilt with this query: alter index <index_name> rebuild; Thx. 回答1: create or replace procedure rebuild_indexes( p_owner in varchar2, p_table_name in varchar2 ) as begin for indexes_to_rebuild in ( select index_name from all_indexes where owner = p_owner and table_name = p_table_name ) loop

CMD命令行下编译.Net Visual Studio 项目

点点圈 提交于 2021-02-02 06:58:57
有时候我们需要编译.net 的sln解决方案,可是VS打开的速度太慢,可以用命令行进行代替,详细过程如下: 1.开始菜单——>Visual Studio 2017(根据你电脑上安装的VS版本来)——>Visual Studio Tools——>打开 Developer Command Prompt for VS 2017 2.输入如下命令: devenv 资源管理器中的sln路径 /build(或者rebuild) Release(或者debug) 假如我的vs解决方案为路径 D:\Works\MyApp.sln,则编译可以用如下命令进行: (1) 编译 为 Debug 类型 devenv D:\Works\MyApp.sln /build debug (2) 编译 为 Release 类型 devenv D:\Works\MyApp.sln /build debug (3) 重新编译 为 Debug 类型 devenv D:\Works\MyApp.sln /rebuild debug (4) 重新编译 为 Release 类型 devenv D:\Works\MyApp.sln /rebuild release 3.命令行格式 devenv 解决方案文件.sln /build [ 解决方案配置 ] [ /project 项目名称或文件 [ /projectconfig 名称 ]

STM32通过IAP实现固件升级的分析与示例

谁说胖子不能爱 提交于 2020-12-28 18:43:45
大部分MCU都可以通过IAP对片内flash进行读写来实现固件升级。 这里主要是STM32如何实现IAP升级。 不同内核的stm32方式可能略有不同。这里先说F1内核的IAP过程,以STM32F103C8T6为例。 一、片内FLASH读写 实现IAP,首先要实现片内FLASH读写 1、擦除程序区,调用库函数FLASH_ErasePage可以按页做擦除 int FlashErase(uint32_t addr) { uint8_t retry_time; uint8_t i; retry_time = 200; FLASH_Unlock(); for(i=0; i<55; i++) { FLASH_ErasePage((uint32_t)addr); while((FLASH->SR & FLASH_FLAG_EOP) == 0) { delay_ms(1); retry_time--; if(retry_time == 0) { return 1; } } //标记清零 FLASH->SR |= FLASH_FLAG_EOP; addr += 0x400; delay_ms(1); } FLASH_Lock(); return 0; } 2、读片内FLASH 直接指针读指定FLASH地址就可以了 #define PARA_START_ADDR1 0x0800f800 //参数首地址

SQL server分离和附加数据库

大兔子大兔子 提交于 2020-12-20 04:47:05
下文是参考网友的文章结合自身的经验来总结的 应用于将数据库更改到同一计算机或不同计算机的不同SQL server实例中,或者要移动数据库文件存储的位置时。 一、分离数据库 将数据库从SQL server实例中移除,保证数据文件和日志文件完整性。 对于分离一个数据库来说,我们可以用Manage Studio界面或者存储过程。但是对于每一种方法都必须保证没有用户使用这个数据库.接下来所讲的都是对于用命令来分离或附加一个数据库。对于用Manage Studio自己看着界面操作就可以应付了。 对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTER DATABASE命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为SINGLE_USER模式,设置为SIGLE_USER代码如下: ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE 下面是分离数据库的CMD命令 EXEC sp_detach_db DatabaseName 一旦一个数据库分离成功,从SQL Server角度来看和删除这个数据库没有什么区别。 二、 附加数据库 对于附加数据库,可以使用sp_attach_db存储过程,或者使用带有FOR ATTACH选项的CREATE DATABASE命令,在SQL

bzoj千题计划311:bzoj5017: [Snoi2017]炸弹(线段树优化tarjan构图)

一个人想着一个人 提交于 2020-12-15 09:51:46
https://www.lydsy.com/JudgeOnline/problem.php?id=5017 暴力: 对于每一个炸弹,枚举所有的炸弹,看它爆炸能不能引爆那个炸弹 如果能,由这个炸弹向引爆的炸弹连单向边 tarjan所点后拓扑排序 在拓扑图上倒着统计答案 可以得到一个炸弹能引爆的编号最小mi和最大的炸弹mx,mx-mi+1就是先引爆这个炸弹一共能引爆的炸弹数 优化: 一个炸弹一定是向一段区间连边 所以用线段树优化,这样向一个区间连边就变成了向一个点连边 注意存边的空间一定要开的足够大 还有tarjan缩完点后不一定是一棵树,因为是有向图缩点 #include<cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; const int mod=1e9+ 7 ; #define N 500001 typedef long long LL; int n; int id[N* 3 ],num; int front[N* 3 ],to[N* 21 ],nxt[N* 21 ], from [N* 21 ],tot; LL pos[N],rad[N]; int dfn[N* 3 ],low[N* 3 ],tim; int st[N* 3 ],top; bool