sql存储过程

数据访问类SqlClient

故事扮演 提交于 2020-01-03 21:18:58
using System; using System.ComponentModel; using System.Collections; using System.Diagnostics; using System.Data; using System.Data.SqlClient; using System.Configuration; using Microsoft.Win32; using System.IO; using System.Windows.Forms; namespace Sun.WebExam { public class DB : IDisposable { // 连接数据源 private SqlConnection con; /**/ /// <summary> /// 执行存储过程 /// </summary> /// <param name="procName"> 存储过程的名称 </param> /// <returns> 返回存储过程返回值 </returns> public int RunProc( string procName) { SqlCommand cmd = CreateCommand(procName, null ); cmd.ExecuteNonQuery(); this .Close(); return ( int )cmd

CWF框架之SQLHelper,简单的数据逻辑案例

最后都变了- 提交于 2019-12-29 05:03:18
对于数据处理逻辑,上篇已经发布了又VB.net写的接口,这里公布一个又vb.net写的接口实现类 本来想发布类工厂操作,但是我的工程采用了配置文件注入方式,所以代码又点长,就先发sql数据库操作的实现类。 Imports System.Data Imports System.Data.SqlClient Imports System.Data.Common ''' <summary> ''' 简单数据操作底层类SQL数据库 ''' </summary> ''' <remarks> ''' 该类执行简单的数据操作支持SQL ''' 开发者:欧阳寒玟 ''' 开发时间:2009-01-25 ''' 修改时间:2010-10-25 ''' 作者网站: http://www.coldwin.org ''' </remarks> Public Class SQLHelper Implements IDbHelper Private conStr As String Private conn As SqlConnection ''连接对象 Private cmd As SqlCommand ''Command对象 Private _isTran As Boolean = False ''是否执行事务 #Region "准备工作" ''' <summary> ''' 获取或设置链接字符串 '''

SQLHelper

雨燕双飞 提交于 2019-12-29 05:02:55
以前用的SQL帮助类用着不怎么顺手,就用业余时间又写了一个。 重写后执行效率和资源占用相较之前用的那个有所优化,增加了几个新功能。 1,可以自动识别SQL语句的类型,简单说就是调用方法时不需要再指定CommandType的值了,无论是语句还是存储过程,直接用就行了。 2,增加了执行事务的能力。 3,提高了健壮性,本次SQL查询失败导致的链接未关闭不会引起其他后续语句的执行异常。 4,提供了一种新的使用SQL帮助类的模式,这种模式下数据库连接的打开可关闭需要手动操作,不过可以在打开关闭一次连接中执行多条SQL语句,提高了效率。 希望大家指出其中的不足以利于改进。 废话多说了,上代码: using System; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace Helper.DB.SqlServer { /// <summary> /// SQL Server数据库帮助类 /// </summary> public class DbHelper { #region 私有成员 /// <summary> /// 数据库连接对象 /// </summary> private SqlConnection connection; /// <summary> ///

MS SQL Server查询优化方法

折月煮酒 提交于 2019-12-26 19:54:24
查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 ●可以通过如下方法来优化查询 : 1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要. 2、纵向、横向分割表,减少表的尺寸(sp_spaceuse) 3、升级硬件 4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段 5、提高网速; 6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server?

sql存储过程删除无限极分类

拈花ヽ惹草 提交于 2019-12-25 18:59:22
create procedure pro_delete @deleteId int as declare @nodeid int declare @id int declare @pid int set @nodeid = @deleteId set @id = @nodeid set @pid = @nodeid begin transaction while(exists (select * from H where id = @nodeid)) begin if(exists (select * from H where Pid = @id and id != @id) ) begin set @pid = @id set @id = (select top 1 id from H where pid = @id and id != @id) end else begin print @id delete from H where id = @id set @id = @pid set @pid = (select top 1 pid from H where id = @pid) end end if(@@ERROR<>0) ROLLBACK TRANSACTION else commit transaction 来源: https://www.cnblogs.com

删除无限极分类的sql存储过程

孤街浪徒 提交于 2019-12-25 18:58:55
CREATE PROCEDURE [dbo].[Category_Delete] @CategoryId int AS --DELETE [Category] -- WHERE CategoryId=@CategoryId --DELETE [Category] -- WHERE FatherId=@CategoryId declare @taba TABLE ([tabid] [ int ] NOT NULL ) insert @taba (tabid) select CategoryId from Category WHERE FatherId=@CategoryId declare @id int while(exists( select top 1 * from @taba)) --只要还有数据就继续循环 begin select top 1 @id=tabid from @taba --从变量表中取出一条记录 insert @taba (tabid) --插入父ID等于@id这条记录的子记录 select CategoryId from Category WHERE FatherId=@id delete from Category where CategoryId=@id --从原表中删除该记录 delete from @taba where tabid=@id -

Oracle入门-2存储过程

一曲冷凌霜 提交于 2019-12-19 09:38:33
1.转自: http://log-cd.javaeye.com/blog/288585 # 2.转自: http://www.cnblogs.com/chinafine/articles/1776094.html 1 一、过程(PROCEDURE ) 过程是作为一个单独的程序编译到Oracle数据库模式中的。过程能够接收参数。在编译过程时,Create Procedure语句的过程标识符在数据字典中成为对象名。 过程结构如下: CREATE OR REPLACE PROCEDURE 过程名 (可选参数) IS 声明部分 BEGIN 程序体 EXCEPTION 异常处理程序 END 过程名 过程的命名应该用动词。因为过程通常是执行某种动作,比如,更新数据库、写文件,或者发送消息。 过程并不一定具有参数。当创建的过程没有参数时,就不需要使用圆括号。当调用过程时空括号是可选的。 可以编码为IS或AS,两种语法都是合法的。 Sql代码 PROCEDURE INSERT_TEMP IS (| AS ) PROCEDURE INSERT_TEMP IS (| AS) 尽管将过程名追加到END子句后是可选的,但强烈推荐这么做。 例如: Sql代码 Create table temp (n number); Create table temp(n number); 定义一个过程: Sql代码

SQL存储过程实例

烂漫一生 提交于 2019-12-16 19:20:40
SQL存储过程实例 例1 传入一个参数@username,判断用户是否存在 ------------------------------------------------------------------------------- CREATE PROC IsExistUser ( @username varchar(20), @IsExistTheUser varchar(25) OUTPUT--输出参数 ) as SELECT @IsExistTheUser = count(username) FROM users WHERE username = @username GO 例2 存储过程结合事务的一个例子:添加用户,涉及到两个表,一个用户资料表,一个密码表: 增加用户 ------------------------------------------------------------------------------- create procedure AddUser ( @username varchar(20),--用户名 @passwords varchar(18),--密码 @email varchar(100),--邮箱 @qq varchar(11),--QQ号码 @imageid int--头像 ) as -- 设置NOCOUNT为ON

sql 查询慢的48个原因分析

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-11 18:45:04
还是一转帖,总结的不错,大家借鉴。 原网址: http://database.ctocio.com.cn/222/9068222.shtml 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)   2、I/O吞吐量小,形成了瓶颈效应。   3、没有创建计算列导致查询不优化。   4、内存不足   5、网络速度慢   6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)   7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)   8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。   9、返回了不必要的行和列   10、查询语句不好,没有优化 ●可以通过如下方法来优化查询 :   1)把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.   2)纵向、横向分割表,减少表的尺寸(sp_spaceuse)   3)升级硬件   4)根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段   5)提高网速;   6)扩大服务器的内存,Windows

大型网站应用之海量数据和高并发解决方案总结一二

别说谁变了你拦得住时间么 提交于 2019-12-08 18:00:00
一、网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能,当然,也要考虑成本的问题。 当问题的规模在经济条件下通过堆硬件的方式解决不了的时候,我们应该通过其他的思路去解决问题,互联网发展至今,已经提供了很多成熟的解决方案,但并不是都具有适用性,你把淘宝的技术全部都搬过来也不一定达到现在淘宝的水平,道理很简单。 当然,很多文章都在强调,一个网站的发展水平,是逐渐的演变过来的,并不是一朝一夕的事情。虽然目前的情况互联网的泡沫越来越大,但是整个互联网技术的发展确实为我们提供了方便快捷的上网体验。下边是一张早期的淘宝官网的界面: 目前,博主正在跟随导师做一个创业项目,使用的技术是SSM+MySQL+Linux这些,但是由于资金的限制和考虑到用户群体的特殊性,系统的架构无奈的选择的就是最简单的方式:一台应用服务器、一台数据库服务器、一台文件系统服务器,没有用到高级的技术,也没有用到分布式部署的方案。下边整理的是一些针对海量数据和高并发情况下的解决方案,技术水平有限,欢迎留言指导。 二、针对海量数据和高并发的主要解决方案 2.1、海量数据的解决方案: 使用缓存; 页面静态化技术; 数据库优化; 分离数据库中活跃的数据; 批量读取和延迟修改;