sql
文章平均质量分 51
【Help】
这个作者很懒,什么都没留下…
展开
-
MSSQL清理日志\删除数据\收缩数据库
首先解释一下数据库的版本是SQL Server 2012。清除的数据库800多G,磁盘空间就剩10多G,数据量最多的表有2亿。目的就是清楚去年的数据(2017年之前),遇到了一些问题,总结起来就是三方面问题: 1.如何清理日志文件。 2.删除千万级别的数据。 3.数据库的收缩操作。一、清除日志文件 刚开始直接用delete语句删除给报了两次错误:“The transaction log for database 'DB' is full due to 'ACTIVE_TR.转载 2022-01-28 11:54:36 · 3200 阅读 · 0 评论 -
SQL Server查询系统建议的索引信息
日常应用中,如需查询缺少的索引信息,可使用系统DMV视图:sys.dm_db_missing_index_groups,sys.dm_db_missing_index_group_stats,sys.dm_db_missing_index_details等, 相关TSQL查询语句如下:-- 查询缺少的索引select top 100 [AvgImpact]=b.avg_user_impact*(b.user_seeks+b.user_scans), ...转载 2021-01-05 10:05:35 · 173 阅读 · 2 评论 -
SQL Server 2012 将数据导出为脚本详细图解
前记:从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过程,但是SQL Server 2012和SQL Server 2008的导出脚本的过程还有一点细微的差别,我在这里详细的介绍一下。在SQL Server 2012中我们无法直接找到例如下图中的编写数据的脚本的选项。对于SQL Server 2008来说,我们可以在SSMS2008中的对象资源管理器中,右击需要导出数据的数据库,在弹出的菜单中选择“任务”下的“生成脚本”选项。在脚本想到的选择脚本呢转载 2021-01-05 09:52:17 · 379 阅读 · 0 评论 -
SQL Server 2012 OFFSET/FETCH NEXT分页示例
原文:http://beyondrelational.com/modules/29/presentations/483/scripts/12983/sql-server-2012-server-side-paging-demo-using-offsetfetch-next.aspx?utm_source=brnewsletter&utm_medium=email&utm_campaign=2012AprSQL Server 2005 引入了 ROW_NUMBER()来提供一种容易的.转载 2021-01-05 09:48:25 · 189 阅读 · 0 评论 -
SQLServer 2014 内存优化表
内存优化表是 SQLServer 2014 的新功能,它是可以将表放在内存中,这会明显提升DML性能。关于内存优化表,更多可参考两位大侠的文章:SQL Server 2014新特性探秘(1)-内存数据库试试SQLSERVER2014的内存优化表创建内存优化表也很简单,以下测试:添加内存优化数据库文件组: USE [master] GO -- 在当前数据库中添加内存优化数据库文件组(每个数据库仅1个文件组) ALTER DATAB...转载 2020-11-17 16:28:50 · 919 阅读 · 0 评论 -
MySQL之从一个表中的两个Id分别获取另一个表中对应这两个Id的名字
MySQL之从一个表中的两个Id分别获取另一个表中对应这两个Id的名字。我写的MySQL之从一个表中的两个Id分别获取另一个表中对应这两个Id的名字,供自己以后学习使用。http://blog.sina.com.cn/s/blog_149e9d2ec0102voyy.html简介:做MySQL的查询时遇到一个相当头大的问题,就是通过notice数据库中senderId和recipientId获取user数据库中对应的两个名字,并且在一行显示,注意不是在一个字段中显示(注:在一个字段中显示转载 2020-05-19 18:40:10 · 2527 阅读 · 0 评论 -
分库分表使用场景及设计方式
一. 分表 场景:对于大型的互联网应用来说,数据库单表的记录行数可能达到千万级甚至是亿级,并且数据库面临着极高的并发访问。采用Master-Slave复制模式的MySQL架构,只能够对数据库的读进行扩展,而对数据库的写入操作还是集中在Master上,并且单个Master挂载的Slave也不可能无限制多,Slave的数量受到Master能力和负载的限制。 因此,需要对数据库的吞吐...转载 2018-11-12 18:12:54 · 1783 阅读 · 0 评论 -
探讨SQL Server并发处理存在就更新七种解决方案
前言本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案。探讨存在就更新七种方案首先我们来创建测试表IF OBJECT_ID('Test') IS NOT NULL DROP TABLE TestCREATE TABLE Test( I...转载 2018-04-02 10:23:23 · 232 阅读 · 0 评论 -
解决并发情况下库存减为负数问题
场景:一个商品有库存,下单时先检查库存,如果>0,把库存-1然后下单,如果select quantity from products WHERE id=3;update products set quantity = ($quantity-1) WHERE id=3;在并发情况下,可能会把库存减为负数(两个进程同时select出来的都>0,然后都会执行update),转载 2017-08-18 16:25:02 · 1919 阅读 · 0 评论 -
sql查询所有表,所有字段
SELECT name FROM sysobjects WHERE xtype='U' ORDER BY name SELECT a.name as f_name, b.value from sys.syscolumns a LEFT JOIN sys.extended_properties b on a.id=b.major_id AND a.colid=b.minor_id AN原创 2017-05-16 13:25:42 · 2402 阅读 · 0 评论 -
使用SQL Server 2005作业设置定时任务
公司有一个老项目由于直接把终端拍摄的图片以二进制的形式保存到数据库中,数据库比较大所以需要经常删除这些冗余数据,手动删除费时费力,项目组长让我把这些操作变成自动的,每天执行一次,只保留最近两个月的图片数据。查阅了相关的资料,找到了解决方案,在此做一个记录,以便有同样需求的人和自己查阅。 现在我们通过一个非常简单的示例来演示如何设置定时任务:有一张员工表,我们定时往里面添加一条数据。通过示转载 2016-12-01 16:07:22 · 362 阅读 · 0 评论 -
SQL2005 镜像配置
新添加了一台服务器,做原来服务器的备份机,用交叉线+双网卡配置了内网。系统环境:Windows 2008 R2数据库:SQL2005 SP3 设置镜像可以用证书和域两种情况,不过域设置的权限比较复杂,而且需要改动现在的设置,所以决定用证书来设置,中间出现了各种问题,一一记录。 搭建的步骤,有不少,前期都是一致的: 前期的设置参照这篇b转载 2016-09-28 17:38:38 · 1396 阅读 · 0 评论 -
使用分区函数去除重复
If Exists(Select * From tempdb.Information_Schema.Tables Where Table_Name Like '#Temp%') Drop Table #temp Create Table #temp ([Id] int, [Name] varchar(50), [Age] int, [Sex] bit default 1) Go转载 2014-07-18 17:56:17 · 472 阅读 · 0 评论 -
SQL Server 2008 通过配置数据库邮件实现发送邮件功能
1.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。无需 Microsoft Outlook 或扩展消息处理应用程序编程接口(扩展 MAPI)。数据库邮件使用标准的简单邮件传输协转载 2014-12-31 13:40:54 · 4231 阅读 · 0 评论 -
sql存储过程分页
exec [dbo].[AJ_CTFX_Page] 10,1alter PROCEDURE [dbo].[AJ_CTFX_Page]--@FrequentFlyerNameNVARCHAR(128),--@PapersNumberNVARCHAR(256),--@CustomerId UNIQUEIDENTIFIER,@PageSize INT = 10,@原创 2014-11-27 12:48:09 · 385 阅读 · 0 评论 -
Sql根据子类ID查找父类ID
-->Title:Generating test data-->Author:wufeng4552-->Date :2009-09-30 08:52:38set nocount onif object_id('tb','U')is not null drop table tbgocreate table tb(ID int, ParentID int翻译 2015-04-03 15:55:51 · 5059 阅读 · 0 评论 -
sql 中文转拼音首字母
--可支持大字符集20000个汉字!create function f_ch2py(@chn nchar(1))returns char(1)asbegindeclare @n intdeclare @c char(1)set @n = 63select @n = @n +1, @c = case chn when @chn then char(@n) else转载 2015-07-06 11:41:12 · 2413 阅读 · 0 评论 -
Sql删除重复操作
DELETE AAA FROM(select * ,row_number() over (partition by [uID],type,CONVERT(varchar(100), [CreateTime], 102) order by [CreateTime]) as numrowfrom [test].[dbo].[Tests]) AAA where numrow>1 and AAA原创 2015-11-12 18:17:48 · 699 阅读 · 0 评论 -
------------------------------------------使用聚集索引和非聚集索引的区别------------------------------------
聚集索引时物理排序非聚集索引是按照物理和逻辑排序你可以把索引理解为字典聚集索引直接查询到子 非聚集索引则需要先查偏旁或者拼音再查字使用聚集索引和非聚集索引的区别 使用聚集索引 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索转载 2016-01-29 10:44:52 · 398 阅读 · 0 评论 -
SQL Server2008如何设置开启远程连接http://jingyan.baidu.com/article/fec4bce226a264f2618d8ba5.html
SQL Server 2008默认是不允许远程连接的,sa帐户默认禁用的,那么如何在本地用SSMS连接远程服务器上的SQL Server 2008,且听小编来给你慢慢讲解。工具/原料电脑(安装过SQL Server2008)方法/步骤1登陆SQL Server 2008(windows身份认转载 2016-06-01 09:52:45 · 1888 阅读 · 0 评论 -
触发器同步
--不同服务器数据库之间的数据操作--************************************************************************************1、--创建链接服务器 exec sp_addlinkedserver 'ITSV', ' ', 'SQLOLEDB', '远程服务器名或ip地址 ' exe转载 2016-09-06 16:21:22 · 647 阅读 · 0 评论 -
怎样玩转千万级别的数据(表分区)
大数据处理是一个头疼的问题,特别当达不到专业DBA的技术水准时,对一些数据库方面的问题感到无赖。所以还是有必要了解一些数据库方面的技巧,当然,每个人都有自己的数据库方面的技巧,只是八仙过海,所用的武功不同而已。我把我最常用的几种方式总结来与大家分享,大家还有更多的数据库设计和优化的技巧,尽量的追加到评论中,有时一篇完整的博客评论比主题更为精彩。方法1:采用表分区技术。 第一次听转载 2016-09-26 14:44:56 · 24073 阅读 · 0 评论 -
SQL优化
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个转载 2014-04-16 14:27:57 · 378 阅读 · 0 评论