
SQL优化总结
文章平均质量分 61
SQL优化总结
huang714
不断的学习,充实自己。
展开
-
sql查询数据库中所有表名
查询数据库里所有表名和字段名的语句SQLSERVER 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'SELECT * FROM INFORMATION_SCHEMA.TABLES查询表的所有字段名:SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )SELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEM原创 2022-04-15 10:28:58 · 10886 阅读 · 0 评论 -
数据库中修改数据类型
UNIT_PRICE :数据库原先类型为: NUMBER(18,4)AMOUNT : 数据库原先类型为: NUMBER(18,4)如果直接进行修改会报错,因为原先字段中已经有数据了。ALTER TABLE CLOUD_RELEASE.CONTRACT_PRODUCT_ITEM MODIFY(UNIT_PRICE NUMBER(18,6));ALTER TABLE CLOUD_RELEASE.CONTRACT_PRODUCT_ITEM MODIFY(AMOUNT NUMBER(18,6));原创 2021-12-27 14:29:17 · 7800 阅读 · 0 评论 -
SQL Server日常维护常用的一些脚本整理
--SQL Server日常维护常用的一些脚本整理。--1.sql server开启clr权限:exec sp_configure 'clr enabled', 1GORECONFIGUREGOALTER DATABASE HWMESTC SET TRUSTWORTHY ONALTER AUTHORIZATION ON Database::HWMESTC TO sa;--2.查询数据库大小Exec sp_spaceusedselect name, convert(float,si.原创 2021-12-27 14:19:24 · 914 阅读 · 0 评论 -
SQL语句的解析过程
于最近需要做一些sql query性能提升的研究,因此研究了一下sql语句的解决过程。在园子里看了下,大家写了很多相关的文章,大家的侧重点各有不同。本文是我在看了各种资料后手机总结的,会详细的,一步一步地讲述一个sql语句的各个关键字的解析过程,欢迎大家互相学习。SQL语句的解析顺序简单地说一个sql语句是按照如下的顺序解析的:1. FROMFROM后面的表标识了这条语句要查询的数据源。和一些子句如,(1-J1)笛卡尔积,(1-J2)ON过滤,(1-J3)添加外部列,所要应用的对象。FROM过.原创 2021-12-27 14:06:35 · 2950 阅读 · 0 评论 -
提高数据库性能的10个最简单方法
众所周知SQL SERVER是微软的数据库拳头产品,有着图形化友好界面、操作门槛低、部署难度小,一键式安装的特点,受到全球开发者及企业的青睐。从历代版本说起,经典2000版本是划时代的里程碑作品,至今还能在各种财务软件、ERP偶遇一回。但随着软件的升级换代,早期的2000版本从性能、功能上已经难以满足现行需求的发展,随之出现了2005、2008、2008R2、2012、2014、2016、2017、2019版本,2005和2008作为2000的实力升级版本,已经在数据库界扛了多年把子。当然,也经原创 2021-08-26 09:51:36 · 6364 阅读 · 1 评论 -
(建议收藏)-最全的SQL语句
一、基础部分1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新原创 2020-06-09 15:01:48 · 405 阅读 · 0 评论 -
SQLServer 批量备份与还原
备份与还原是数据库避不开的主题,而作为DBA,经常会面临将一台机器上的所有数据库重新构建到一台新机器上的要求;在现在都讲究自动化管理的时代,传统的界面操作备份还原的做法不仅浪费时间和精力,而且还很容易出错,并且这次完成后,下次再有这样的要求,必须又重头开始(估计做5次就能做得人狂吐);于是,我们需要一套应对这种频繁操作、耗时、耗精力的通用处理方法,所以以下批处理脚本就诞生了。...原创 2020-03-25 11:24:47 · 605 阅读 · 0 评论 -
sql server 性能优化方法
sql server 性能优化方法一、查看是否有死锁DECLARE @tab TABLE(NAME varchar(100),value varchar(200)); INSERT INTO @tab EXEC('DBCC OPENTRAN WITH TABLERESULTS'); SELECT name,CAST(value AS DATETIME) startDate,get...原创 2020-03-26 08:51:22 · 326 阅读 · 0 评论 -
SQL Server 学习5(随机数,整数,编号,序号)
1.1 SET IDENTITY_INSERT 中的几个问题--1. 会话中某个表已将此属性设置为ON,当为另一个表发出了SET IDENTITY_INSERT ON 句时将出错--测试的表CREATE TABLE ta(id int IDENTITY(1,1),col int)CREATE TABLE tb(id int IDENTITY(1,1),col int)GO--设置 IDENTITY_INSERT 属性SET IDENTITY_INSERT ta ONSET IDENTIT原创 2020-09-16 09:23:40 · 1389 阅读 · 0 评论 -
数据库 SQLServer中GUID用法介绍
数据库 SQLServer中GUID用法介绍1、NEWID用法NEWID()作用是生成无顺序的GUID字符串。用法如下:SELECT NEWID() --生成36位的GUIDSELECT REPLACE(newid(), '-', '') -- 生成32 位的GUID2、NEWSEQUENTIALID用法2.1、NEWSEQUENTIALID是什么?在指定计算机上创建大于先前通过该函数生成的任何 GUID 的 GUID。NEWSEQUENTIALID() 不能在查询.原创 2021-01-11 13:31:04 · 8164 阅读 · 1 评论 -
SQL Server2012高可用之日志传送测试
(一)日志传送架构(1.1)相关服务器主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库;辅助服务器:用于存放主服务器上数据库的一个“镜像”数据库;监控服务器:用来监控日志传送状态的一个服务器,可选;(1.2)文件夹与日志传送有关的文件夹一共有2个:共享文件夹:该文件夹用于存放主数据库上备份出来的日志,一般位于主服务器上,主服...原创 2020-03-26 08:51:12 · 421 阅读 · 0 评论 -
SQL小技巧解决大问题:如何统计字符出现次数?
--定义变量declare @pos bigint=1;declare @len bigint;declare @char nvarchar(1);declare @text nvarchar(max);declare @val varchar(max)=space(0);declare @count bigint=0;--初始化一些变量set @text=N'印度嚣张、越南阴险、美国霸道、中国低调、、、';set @len=len(@text);--统计“、”出现个数while @.原创 2020-06-09 15:04:11 · 1296 阅读 · 0 评论 -
sql server 自定义split 标值函数
**sql server 自定义split 标值函数**自定义一个函数,分隔一个以分隔符的隔开字符串,例如把‘1,3,5,7,9’ 变成 数字1 3 5 7 9的结果集。自定义标值函数:复制代码create function [dbo].[my_split](@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table(a varchar(100))–实现split功能 的函数asbegindeclare @i原创 2020-11-23 09:42:29 · 247 阅读 · 0 评论 -
sqlserver查询锁住sql以及解锁
果果虫保持饥饿,保持愚蠢!sqlserver:查询锁住sql以及解锁--查看被锁表:SELECTrequest_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableNameFROMsys.dm_tran_locksWHEREresource_type = 'OBJECT'ORDER BY ...原创 2019-07-10 15:57:42 · 3230 阅读 · 0 评论 -
Sql Server 数据库扩展
1. 查询一个表的所有列名------查询一个表的所有列名Select Name FROM SysColumns Where id=Object_Id('Sys_User')select t.column_name from information_schema.columns t where t.table_name='Sys_User';如图所示: ...原创 2020-03-26 08:51:43 · 441 阅读 · 0 评论 -
为SQL Server数据库清空日志并收缩数据库
在SQL SERVER运行一段时间后,数据库的日志文件越来越大越来越大,有的时候我们为了减少日志文件的大小腾出存储空间,就要截断事务日志并收缩数据库,这样LOG文件占用的磁盘空间就被释放了。要注意以下的任何一种操作都会使你丧失相应数据库的事务日志内容!操作之前一定要先备份数据库!!对于SQL Server 2012之前的版本可以这样干:--达叔傻乐 (darwin.zuo@16...原创 2020-03-26 08:50:10 · 308 阅读 · 0 评论 -
sqlserver常用运维sql
1. sqlserver 检测sqlSELECT top 10(total_elapsed_time / execution_count)/1000 N'平均时间ms',total_elapsed_time/1000 N'总花费时间ms',total_worker_time/1000 N'所用的CPU总时间ms'...原创 2019-04-18 09:08:57 · 2462 阅读 · 0 评论 -
SQL Server的数据加密简介
背景有时候,我们还真的会碰到这样的需求:防止开发人员获取到敏感数据。也许你觉得很简单,把开发和运营分开不就可以了吗?是的,如果公司有专门的运营团队的话,但对于很多小公司来说,几个人的开发团队就兼顾了需求分析、设计、开发、测试、调试、部署和运营了,数据库密码知道,程序代码全有,怎么办?——必须对数据库里的数据进行加密,这是唯一的办法。也许你还是不明白,什么东西需要瞒着我们了不起的程序员,好吧,我直说了:工资!假如你的公司让你做一个工资系统,你会不会有这方面的顾虑,一旦工资信息被公开,后果必定是很严重的原创 2020-06-11 13:49:33 · 923 阅读 · 0 评论 -
SqlServer 利用游标批量更新数据
SqlServer 利用游标批量更新数据Intro游标在有时候会很有用,在更新一部分不多的数据时,可以很方便的更新数据,不需要再写一个小工具来做了,直接写 SQL 就可以了Sample下面来看一个实际示例:Copy-- 声明字段变量 DECLARE @RegionCode INT; DECLARE @RegionName NVARCHAR(64); DECLARE...原创 2020-03-25 11:24:40 · 437 阅读 · 0 评论 -
数据库常用的优化思路
一、设计时:表字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null。尽量使用INT而非BIGINT,如果非负则加上UNSIGNED(这样数值容量会扩大一倍),当然能使用TINYINT、SMALLINT、MEDIUM_INT更好。使用枚举或整数代替字符串类型使用TINYINT来代替ENUM :ENUM增加新值要进行DDL操作尽量使用TIME...原创 2019-06-25 09:36:51 · 416 阅读 · 0 评论 -
数据库 sql 优化
(一)处理百万级以上的数据提高查询速度的方法:1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: selec...原创 2020-03-02 11:00:57 · 196 阅读 · 0 评论 -
sqlserver连接问题圣经
命名管道一。前言在使用SQL Server 的过程中,用户遇到的最多的莫过于连接问题了。本文将深度讨论SQL Server 连接问题的方方面面,希望能帮你彻底解决SQL server 的连接问题。SQL Server 支持的通讯协议很多,如命名管道(Named Pipes)、TCP/IP 套接字、共享内存(Shared Memory)等。由于最常用的是前两种即命名管道和TCP/I...原创 2019-04-16 09:12:14 · 1759 阅读 · 0 评论 -
SQLServer使用脚本执行数据库备份
背景sql server express版无法使用作业,提供一种解决思路 fullbak.sql 完整备份数据库实例级别的完整备份,备份路径为E:\sqlbak\数据库名\,注意需要添加好当前数据库实例各数据库名的子目录复制代码复制代码EXEC sp_MSForEachDB 'USE [?];PRINT DB_NAME();DECLARE @databasename N...原创 2020-03-31 07:26:44 · 803 阅读 · 0 评论 -
Sqlserver清理缓存和内存
--清除存储过程缓存 DBCC FREEPROCCACHE --清除会话缓存 DBCC FREESESSIONCACHE --清除系统缓存 DBCC FREESYSTEMCACHE('All') --清除所有缓存 DBCC DROPCLEANBUFFERSGO --打开高级配置 exec sp_configure'show advanced options', 1 GO--设置最大内存MB 2Gexec sp_configure 'max server memory', 2.原创 2020-08-06 15:44:16 · 562 阅读 · 0 评论 -
生成model存储过程
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON go Create PROC [dbo].[p_db_wsp] @dbname VARCHAR(50) , --数据库名 @path VARCHAR(100) , --实体类所在目录名,如D:/My/Models @namespace VARCHA...原创 2019-04-15 08:47:04 · 315 阅读 · 0 评论 -
SQL Server中Base64編碼
declare @source varbinary(max), @encoded varchar(max), @decoded varbinary(max) set @source = convert(varbinary(max), 'Hello Base64') set @encoded = cast('' as xml).value('xs:base64Binary(sql:variable(''@source''))', 'varchar(max)') set @decoded = cast(.原创 2020-06-11 10:14:45 · 1328 阅读 · 0 评论 -
批量修改Ms SqlServer 的default(默认值)
--1、取得数据库所有表的默认值:select t3.name as 表名,t1.name as 字段名,t2.text as 默认值 ,t4.name from syscolumns t1,syscomments t2,sysobjects t3 ,sysobjects t4 where t1.cdef...原创 2020-03-25 11:24:23 · 720 阅读 · 0 评论 -
必须掌握的30种SQL语句优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id f原创 2020-06-10 10:28:17 · 151 阅读 · 0 评论 -
sqlserver 查询某个表/库的列名称、说明、备注、类型等
库语句:/************************************************************ * Code formatted by SoftTree SQL Assistant ?v5.0.97 * Time: 2020/3/24 8:50:02 **************************************************...原创 2020-03-25 10:54:24 · 1249 阅读 · 0 评论 -
sql server 数据库创建链接服务器访问另外一个sql server 数据库
sql server 数据库创建链接服务器访问另外一个sql server 数据库 继上篇在sql server中创建链接服务器访问oracle数据库本文介绍在sql server中创建链接服务器访问sql server数据库。方法:打开SSMS,新建程序,执行下面sql语句块:EXEC sp_addlinkedserver@server='DBMES', --链接服务器别名@srvproduct='',@provider='SQLOLEDB',...原创 2020-11-23 09:44:21 · 580 阅读 · 0 评论 -
设置内存选项/使用文件及文件组/调整tempdb数据库的文件属性
1.1.1 设置内存选项--设置 min server memory 配置项EXEC sp_configure N'min server memory (MB)', 0--设置 max server memory 配置项EXEC sp_configure N'max server memory (MB)', 256--使更新生效RECONFIGURE WITH OVERRIDE1.1.2.1 使用文件及文件组/*--功能说明 下面的代码是在SQL Server 20...原创 2020-09-16 08:56:16 · 676 阅读 · 0 评论 -
Oracle,SQL Server 数据库较MySql数据库,Sql语句差异
1.关系型数据库百度百科关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。简单说,关系型数据库是由多张能互相联接的二维行列...原创 2020-03-25 10:56:29 · 404 阅读 · 0 评论 -
SQLServer中获取所有数据库名、所有表名、所有字段名的SQL语句
----1. 获取所有的数据库名-----SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME-----2. 获取所有的表名------SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY NAME--XTYPE='U':表示所有用户表;--XTYPE='S':表示所有系统表;SELECT NAME FROM SYSOBJECTS WHERE TYPE = 'U' AND SYSSTA.原创 2020-09-18 10:39:37 · 1762 阅读 · 0 评论 -
SQL Server运维常用语句
1、查询数据文件和日志文件路径select filename from [TestDB1].dbo.sysfiles2、查询数据基本信息,包括数据库ID、创建日期、恢复模式、是否收缩等select * from sys.databases where name = 'TestDB1'3、查询收缩计划--1).数据库是否开启自动收缩SELECT is_auto_shrin...转载 2019-04-18 09:06:13 · 386 阅读 · 0 评论