Transformer在自动驾驶中的核心技术解析与应用实践
2026/10/28 13:06:44
setup.exe,进入 SQL Server 安装中心,选择左侧「安装」,点击右侧「全新 SQL Server 独立安装或向现有安装添加功能」。MSSQLSERVER)或「命名实例」,确认实例根目录,点击「下一步」。SQL Server 2019 数据库由数据库文件(数据文件)和日志文件组成,所有数据库操作均基于这两类文件存储。
数据库文件(Data File)
.mdf)、次数据文件(.ndf)。日志文件(Log File)
.ldf。系统数据库
SQL Server 安装完成后,默认自带4个核心系统数据库,用于支撑数据库引擎的正常运行,禁止随意修改或删除。
| 系统数据库 | 后缀名 | 核心作用 |
|---|---|---|
| master | .mdf/.ldf | 记录 SQL Server 实例的所有系统级信息(实例配置、数据库列表、登录账户等),实例的「总控数据库」。 |
| model | .mdf/.ldf | 所有新建数据库的「模板数据库」,新建数据库时会复制 model 数据库的结构和配置。 |
| msdb | .mdf/.ldf | 用于 SQL Server 代理(作业调度、备份/还原任务、警报等)的存储,记录自动化任务信息。 |
| tempdb | .mdf/.ldf | 临时数据库,存储临时表、临时变量、查询中间结果等,每次 SQL Server 实例重启后会被清空并重建(基于 model 模板)。 |
StudentDB)。sa)或选择指定用户。-- 基础语法(默认配置,仅指定数据库名)CREATEDATABASE数据库名称;-- 完整语法(自定义数据文件、日志文件配置)CREATEDATABASE数据库名称ONPRIMARY-- 主文件组(SQL Server 默认主文件组为 PRIMARY)(-- 主数据文件配置(必须指定)NAME=数据文件逻辑名称,-- 逻辑名:用于 T-SQL 操作中引用文件FILENAME='物理文件路径+文件名.mdf',-- 物理名:磁盘上的实际文件路径和名称SIZE=初始大小,-- 如 10MB、1GB,无单位默认按 MB 计算MAXSIZE=最大大小,-- 如 500MB、UNLIMITED(无限制)FILEGROWTH=自动增长增量-- 如 10MB、10%(按当前大小的百分比增长))LOGON-- 日志文件配置(-- 日志文件配置(至少一个)NAME=日志文件逻辑名称,FILENAME='物理文件路径+文件名.ldf',SIZE=初始大小,MAXSIZE=最大大小,FILEGROWTH=自动增长增量);-- 案例1:创建名为 StudentDB 的数据库,使用所有默认配置(主数据文件 .mdf、日志文件 .ldf 均按默认大小/增长策略)-- 默认存储路径:SQL Server 安装目录下的 Data 文件夹CREATEDATABASEStudentDB;GO-- GO 是 T-SQL 批处理结束标记,用于分隔多个 T-SQL 语句块-- 案例2:创建名为 EmployeeDB 的数据库,自定义数据文件和日志文件的所有配置CREATEDATABASEEmployeeDBONPRIMARY-- 主文件组(-- 主数据文件配置NAME=EmployeeDB_Data,-- 数据文件逻辑名(可自定义,建议与数据库名关联,便于识别)FILENAME='D:\SQL Server Data\EmployeeDB_Data.mdf',-- 物理文件路径(需确保 D 盘存在「SQL Server Data」文件夹,否则会创建失败)SIZE=20MB,-- 初始大小 20MBMAXSIZE=500MB,-- 最大大小 500MB,达到后不再自动增长FILEGROWTH=10MB-- 自动增长增量 10MB,每次空间不足时增加 10MB)LOGON-- 日志文件配置(NAME=EmployeeDB_Log,-- 日志文件逻辑名FILENAME='D:\SQL Server Data\EmployeeDB_Log.ldf',-- 日志文件物理路径SIZE=10MB,-- 日志文件初始大小 10MBMAXSIZE=200MB,-- 日志文件最大大小 200MBFILEGROWTH=5MB-- 日志文件自动增长增量 5MB);GO-- 案例3:创建名为 SalesDB 的数据库,包含主数据文件和1个次数据文件(.ndf),以及1个日志文件CREATEDATABASESalesDBONPRIMARY(-- 主数据文件NAME=SalesDB_Primary_Data,FILENAME='D:\SQL Server Data\SalesDB_Primary.mdf',SIZE=50MB,MAXSIZE=1000MB,FILEGROWTH=20MB),-- 次数据文件(无需指定 PRIMARY,默认归属于主文件组,后缀为 .ndf)(NAME=SalesDB_Secondary_Data,FILENAME='E:\SQL Server Secondary Data\SalesDB_Secondary.ndf',-- 存储在 E 盘,分散磁盘压力SIZE=100MB,MAXSIZE=2000MB,FILEGROWTH=50MB)LOGON(NAME=SalesDB_Log,FILENAME='D:\SQL Server Data\SalesDB_Log.ldf',SIZE=30MB,MAXSIZE=300MB,FILEGROWTH=10MB);GO当数据库存储空间不足时,可通过两种方式扩展:手动增大文件固定大小、修改自动增长策略(推荐,无需手动干预)。
-- 语法1:修改数据文件/日志文件的自动增长策略、最大大小ALTERDATABASE数据库名称MODIFYFILE(NAME=文件逻辑名称,-- 必须指定要修改的文件逻辑名(可通过查看数据库信息获取)MAXSIZE=新的最大大小,FILEGROWTH=新的自动增长增量);-- 语法2:手动增大文件的当前大小(直接设置 SIZE 为更大的值,SIZE 必须大于当前文件大小)ALTERDATABASE数据库名称MODIFYFILE(NAME=文件逻辑名称,SIZE=新的当前大小-- 新大小 > 现有大小);-- 前提:先确认要修改的数据库文件逻辑名(后续查看数据库信息会讲解如何获取)-- 案例1:修改 EmployeeDB 数据库的主数据文件,更新自动增长策略和最大大小ALTERDATABASEEmployeeDBMODIFYFILE(NAME=EmployeeDB_Data,-- 对应创建时的主数据文件逻辑名MAXSIZE=1000MB,-- 最大大小从 500MB 改为 1000MBFILEGROWTH=20MB-- 自动增长增量从 10MB 改为 20MB);GO-- 案例2:手动增大 EmployeeDB 数据库的日志文件当前大小(从 10MB 改为 50MB)ALTERDATABASEEmployeeDBMODIFYFILE(NAME=EmployeeDB_Log,-- 对应创建时的日志文件逻辑名SIZE=50MB-- 新大小 50MB > 原有 10MB,修改成功);GO当数据库文件占用空间过大,但实际数据量较小时,可收缩文件释放多余磁盘空间(注意:不建议频繁收缩,会产生磁盘碎片,影响查询性能)。
-- 语法1:收缩整个数据库(所有数据文件和日志文件,释放多余空间)DBCCSHRINKDATABASE(数据库名称,-- 要收缩的数据库名剩余可用空间百分比-- 收缩后保留的可用空间(如 10,表示保留 10% 空闲空间));-- 语法2:收缩指定的单个文件(更精准,推荐)DBCCSHRINKFILE(文件逻辑名称OR文件ID,-- 要收缩的文件逻辑名或文件ID目标大小-- 收缩后的目标大小(MB,必须小于当前文件的实际数据占用大小+保留空间));-- 补充:收缩日志文件前,建议先备份日志(避免日志无法收缩),并将数据库恢复模式改为「简单」ALTERDATABASE数据库名称SETRECOVERYSIMPLE;GO-- 案例1:收缩 StudentDB 数据库,收缩后保留 5% 的可用空间DBCCSHRINKDATABASE(StudentDB,5);GO-- 案例2:收缩 EmployeeDB 数据库的主数据文件,目标大小改为 30MB-- 步骤1:先确认 EmployeeDB_Data 文件的实际数据占用(需小于 30MB,否则收缩失败)-- 步骤2:执行收缩命令DBCCSHRINKFILE(EmployeeDB_Data,30);GO-- 案例3:收缩 EmployeeDB 数据库的日志文件,目标大小改为 15MB-- 步骤1:将数据库恢复模式改为简单(便于收缩日志)ALTERDATABASEEmployeeDBSETRECOVERYSIMPLE;GO-- 步骤2:收缩日志文件DBCCSHRINKFILE(EmployeeDB_Log,15);GO-- 步骤3:(可选)将数据库恢复模式改回完整(便于后续完整备份和数据恢复)ALTERDATABASEEmployeeDBSETRECOVERYFULL;GO常用方式有两种:图形界面(对象资源管理器)、T-SQL 语句(精准查询,适合开发)。
-- 语法1:查看当前实例下所有数据库的基本信息(名称、创建时间、状态等)SELECT*FROMsys.databases;-- sys.databases 是系统视图,存储所有数据库的元数据-- 语法2:查看指定数据库的文件信息(逻辑名、物理路径、大小、增长策略等)USE数据库名称;-- 切换到目标数据库GOSELECT*FROMsys.database_files;-- sys.database_files 是当前数据库的文件视图-- 语法3:使用系统存储过程查看数据库详细信息EXECsp_helpdb 数据库名称;-- sp_helpdb 是系统存储过程,返回数据库的完整配置信息-- 案例1:查看当前 SQL Server 实例下所有数据库的基本信息SELECTnameAS数据库名称,create_dateAS创建时间,state_descAS数据库状态,recovery_model_descAS恢复模式FROMsys.databases;-- 只查询关键字段,便于阅读GO-- 案例2:查看 EmployeeDB 数据库的文件详细信息USEEmployeeDB;-- 切换到 EmployeeDB 数据库GOSELECTnameAS文件逻辑名称,physical_nameAS物理文件路径,size*8/1024AS文件大小_GB,-- sys.database_files 中 size 单位是 8KB,转换为 GBmax_sizeAS最大大小,filegrowthAS自动增长增量,type_descAS文件类型FROMsys.database_files;GO-- 案例3:使用系统存储过程查看 SalesDB 数据库的完整信息EXECsp_helpdb SalesDB;GO修改数据库的名称,注意:更名前需确保数据库无活动连接(无用户正在使用),否则更名失败。
-- 语法1:使用 ALTER DATABASE 语句更名(推荐,T-SQL 标准语法)ALTERDATABASE旧数据库名称MODIFYNAME=新数据库名称;GO-- 语法2:使用系统存储过程更名(兼容旧版本 SQL Server)EXECsp_renamedb 旧数据库名称,新数据库名称;GO-- 案例:将 StudentDB 数据库更名为 StudentInfoDB-- 步骤1:(可选)先断开该数据库的所有活动连接(避免更名失败)ALTERDATABASEStudentDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;-- SINGLE_USER:设置数据库为单用户模式,仅允许当前连接-- WITH ROLLBACK IMMEDIATE:立即回滚所有未完成的事务,并断开其他活动连接GO-- 步骤2:执行更名操作(推荐使用 ALTER DATABASE 语法)ALTERDATABASEStudentDBMODIFYNAME=StudentInfoDB;GO-- 步骤3:(可选)将数据库恢复为多用户模式(允许其他用户连接)ALTERDATABASEStudentInfoDBSETMULTI_USER;GO删除无用的数据库,释放磁盘空间,注意:删除数据库后,所有数据和日志文件将被永久删除,无法恢复(除非有备份),操作需谨慎。
-- 语法1:基础删除语法DROPDATABASE数据库名称;GO-- 语法2:同时删除多个数据库DROPDATABASE数据库名称1,数据库名称2;GO-- 案例1:删除 StudentInfoDB 数据库(确认无备份需求后执行)-- 步骤1:(可选)断开所有活动连接ALTERDATABASEStudentInfoDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GO-- 步骤2:执行删除操作DROPDATABASEStudentInfoDB;GO-- 案例2:同时删除 EmployeeDB 和 SalesDB 数据库ALTERDATABASEEmployeeDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;ALTERDATABASESalesDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GODROPDATABASEEmployeeDB,SalesDB;GO-- 步骤1:创建 CustomerDB 数据库(主数据文件+次数据文件+日志文件)CREATEDATABASECustomerDBONPRIMARY(-- 主数据文件NAME=CustomerDB_Primary,FILENAME='D:\SQL Server Data\CustomerDB_Primary.mdf',SIZE=30MB,MAXSIZE=800MB,FILEGROWTH=15MB),-- 次数据文件(NAME=CustomerDB_Secondary,FILENAME='E:\SQL Server Data\CustomerDB_Secondary.ndf',SIZE=50MB,MAXSIZE=1000MB,FILEGROWTH=25MB)LOGON(NAME=CustomerDB_Log,FILENAME='D:\SQL Server Data\CustomerDB_Log.ldf',SIZE=20MB,MAXSIZE=400MB,FILEGROWTH=10MB);GO-- 步骤2:查看 CustomerDB 数据库的详细信息(确认文件配置、状态)-- 2.1 查看数据库基本信息SELECTnameAS数据库名称,create_dateAS创建时间,state_descAS状态FROMsys.databasesWHEREname='CustomerDB';GO-- 2.2 查看数据库文件详细信息USECustomerDB;GOSELECTnameAS文件逻辑名,physical_nameAS物理路径,size*8/1024AS文件大小_GB,filegrowthAS自动增长增量FROMsys.database_files;GO-- 步骤3:扩展数据库容量-- 3.1 修改主数据文件的最大大小和自动增长策略ALTERDATABASECustomerDBMODIFYFILE(NAME=CustomerDB_Primary,MAXSIZE=1500MB,FILEGROWTH=30MB);GO-- 3.2 手动增大次数据文件的当前大小(从 50MB 改为 100MB)ALTERDATABASECustomerDBMODIFYFILE(NAME=CustomerDB_Secondary,SIZE=100MB);GO-- 步骤4:收缩数据库多余空间-- 4.1 收缩整个数据库,保留 3% 可用空间DBCCSHRINKDATABASE(CustomerDB,3);GO-- 4.2 收缩日志文件,目标大小改为 25MB(先改为简单恢复模式)ALTERDATABASECustomerDBSETRECOVERYSIMPLE;GODBCCSHRINKFILE(CustomerDB_Log,25);GOALTERDATABASECustomerDBSETRECOVERYFULL;GO-- 步骤5:将 CustomerDB 更名为 EnterpriseCustomerDB-- 5.1 断开所有活动连接ALTERDATABASECustomerDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GO-- 5.2 执行更名ALTERDATABASECustomerDBMODIFYNAME=EnterpriseCustomerDB;GO-- 5.3 恢复多用户模式ALTERDATABASEEnterpriseCustomerDBSETMULTI_USER;GO-- 步骤6:(可选)删除 EnterpriseCustomerDB 数据库(演示用,实际按需保留)ALTERDATABASEEnterpriseCustomerDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GODROPDATABASEEnterpriseCustomerDB;GO.mdf(主数据)、.ndf(次数据)、.ldf(日志)文件组成,系统数据库(master/model/msdb/tempdb)禁止随意修改。CREATE DATABASE(创建)、ALTER DATABASE(修改/更名)、DBCC SHRINKDATABASE/SHRINKFILE(收缩)、DROP DATABASE(删除)、sys.databases/sys.database_files(查询信息)。