精华内容
下载资源
问答
  • count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":9,"count":9}]},"card":[{"des":"云数据库 HBase 版(ApsaraDB for HBase)是基于 HDFS 的一个分布式数据库,支持海量的PB级的大数据存储,...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":9,"count":9}]},"card":[{"des":"云数据库 HBase 版(ApsaraDB for HBase)是基于 HDFS 的一个分布式数据库,支持海量的PB级的大数据存储,适用于高吞吐的随机读写的场景。","link1":"https://common-buy.aliyun.com/?spm=5176.14176009.J_8915174310.1.572e7410mGJXDv&commodityCode=hbasepre&request=%7B%22db_type%22%3A%22hbase%22%2C%22dep_mode%22%3A%22hbase%22%2C%22region%22%3A%22cn-hangzhou%22%2C%22iz%22%3A%22cn-hangzhou-f%22%2C%22version%22%3A%222.0%22%2C%22net_type%22%3A%22vpc%22%2C%22vpcId%22%3A%22vpc-bp14abdhg1edgk6qnutof%22%2C%22vswitchID%22%3A%22%22%2C%22master_spec%22%3A%22hbase.n1.large%22%2C%22master_ha%22%3A%222%22%2C%22core_disk_category%22%3A%22cloud_ssd%22%2C%22core_spec%22%3A%22hbase.sn1.2xlarge%22%2C%22core_num%22%3A3%2C%22core_total_size%22%3A400%2C%22is_cold_storage%22%3A%22false%22%2C%22ord_time%22%3A%22%5B3%2C%5C%22Month%5C%22%2Ctrue%5D%22%7D&aly_as=zeopC8qjN&accounttraceid=f7e7eaab6e9542e3bccb54af839df76dvxov#/buy","link":"https://cn.aliyun.com/product/hbase","icon":"https://img.alicdn.com/tfs/TB1jNfrEXT7gK0jSZFpXXaTkpXa-114-114.png","btn2":"技术专家服务群","tip":"云HBase推出全新Serverless服务,适合学习、测试、间歇性负载和小规模生产!1元包年,立即开通","btn1":"首购3个月3折","link2":"https://yq.aliyun.com/articles/82911?spm=5176.124785.631202.btn6.727752c0imIsiF","title":"云数据库 HBase 版"}],"search":[{"txt":"产品概述","link":"https://help.aliyun.com/document_detail/49501.html"},{"txt":"产品优势","link":"https://help.aliyun.com/document_detail/49502.html"},{"txt":"应用场景","link":"https://help.aliyun.com/document_detail/49503.html"},{"txt":"HBase Java API 访问","link":"https://help.aliyun.com/document_detail/119570.html"},{"txt":"计费方式","link":"https://help.aliyun.com/document_detail/53532.html"},{"txt":"集群规格选型","link":"https://help.aliyun.com/document_detail/59012.html"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}},"newCard":[{"link":"https://img.alicdn.com/tfs/TB1KM.qIeH2gK0jSZJnXXaT1FXa-1740-328.png","icon":"hbase","contentLink":"https://cn.aliyun.com/product/hbase?","title":"云数据库 HBase 版","des":"云数据库HBase是面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析等,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库。","btn1":"了解详情","link1":"https://cn.aliyun.com/product/hbase","btn2":"管理控制台","link2":"https://hbase.console.aliyun.com/hbase/cn-hangzhou/clusters?spm=5176.124785.1400844.6.1ac03094ovYzJ3","btn3":"在线咨询","link3":"https://www.aliyun.com/core/online-consult?spm=5176.8789780.7y9jhqsfz.115.47ea55caeL2Mfu&from=OVtXEBmlH8","infoGroup":[{"infoName":"最新活动","infoContent":{"firstContentName":"HBase 9.9元/6个月","firstContentLink":"https://www.aliyun.com/database/dbfirstbuy#J_6058091700","lastContentName":"ECS+MySQL 0.7元/日","lastContentLink":"https://www.aliyun.com/1111/enterprise"}},{"infoName":"快速入门","infoContent":{"firstContentLink":"https://help.aliyun.com/document_detail/59012.html","firstContentName":"选择集群规格","lastContentName":"产品优势","lastContentLink":"https://help.aliyun.com/document_detail/49502.html"}},{"infoName":"最佳实践","infoContent":{"firstContentLink":"https://help.aliyun.com/document_detail/119575.html","firstContentName":"数据迁移","lastContentLink":"https://help.aliyun.com/document_detail/49503.html","lastContentName":"应用场景"}},{"infoName":"产品推荐","infoContent":{"firstContentName":"云数据库Cassandra","firstContentLink":"https://www.aliyun.com/product/cds","lastContentName":"数据管理DMS","lastContentLink":"https://www.aliyun.com/product/dms"}}]}],"simplifiedDisplay":"newEdition"}

    {"$env":{"JSON":{}},"$page":{"env":"production"},"$context":{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":9,"count":9}]},"card":[{"des":"云数据库 HBase 版(ApsaraDB for HBase)是基于 HDFS 的一个分布式数据库,支持海量的PB级的大数据存储,适用于高吞吐的随机读写的场景。","link1":"https://common-buy.aliyun.com/?spm=5176.14176009.J_8915174310.1.572e7410mGJXDv&commodityCode=hbasepre&request=%7B%22db_type%22%3A%22hbase%22%2C%22dep_mode%22%3A%22hbase%22%2C%22region%22%3A%22cn-hangzhou%22%2C%22iz%22%3A%22cn-hangzhou-f%22%2C%22version%22%3A%222.0%22%2C%22net_type%22%3A%22vpc%22%2C%22vpcId%22%3A%22vpc-bp14abdhg1edgk6qnutof%22%2C%22vswitchID%22%3A%22%22%2C%22master_spec%22%3A%22hbase.n1.large%22%2C%22master_ha%22%3A%222%22%2C%22core_disk_category%22%3A%22cloud_ssd%22%2C%22core_spec%22%3A%22hbase.sn1.2xlarge%22%2C%22core_num%22%3A3%2C%22core_total_size%22%3A400%2C%22is_cold_storage%22%3A%22false%22%2C%22ord_time%22%3A%22%5B3%2C%5C%22Month%5C%22%2Ctrue%5D%22%7D&aly_as=zeopC8qjN&accounttraceid=f7e7eaab6e9542e3bccb54af839df76dvxov#/buy","link":"https://cn.aliyun.com/product/hbase","icon":"https://img.alicdn.com/tfs/TB1jNfrEXT7gK0jSZFpXXaTkpXa-114-114.png","btn2":"技术专家服务群","tip":"云HBase推出全新Serverless服务,适合学习、测试、间歇性负载和小规模生产!1元包年,立即开通","btn1":"首购3个月3折","link2":"https://yq.aliyun.com/articles/82911?spm=5176.124785.631202.btn6.727752c0imIsiF","title":"云数据库 HBase 版"}],"search":[{"txt":"产品概述","link":"https://help.aliyun.com/document_detail/49501.html"},{"txt":"产品优势","link":"https://help.aliyun.com/document_detail/49502.html"},{"txt":"应用场景","link":"https://help.aliyun.com/document_detail/49503.html"},{"txt":"HBase Java API 访问","link":"https://help.aliyun.com/document_detail/119570.html"},{"txt":"计费方式","link":"https://help.aliyun.com/document_detail/53532.html"},{"txt":"集群规格选型","link":"https://help.aliyun.com/document_detail/59012.html"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}},"newCard":[{"link":"https://img.alicdn.com/tfs/TB1KM.qIeH2gK0jSZJnXXaT1FXa-1740-328.png","icon":"hbase","contentLink":"https://cn.aliyun.com/product/hbase?","title":"云数据库 HBase 版","des":"云数据库HBase是面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析等,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库。","btn1":"了解详情","link1":"https://cn.aliyun.com/product/hbase","btn2":"管理控制台","link2":"https://hbase.console.aliyun.com/hbase/cn-hangzhou/clusters?spm=5176.124785.1400844.6.1ac03094ovYzJ3","btn3":"在线咨询","link3":"https://www.aliyun.com/core/online-consult?spm=5176.8789780.7y9jhqsfz.115.47ea55caeL2Mfu&from=OVtXEBmlH8","infoGroup":[{"infoName":"最新活动","infoContent":{"firstContentName":"HBase 9.9元/6个月","firstContentLink":"https://www.aliyun.com/database/dbfirstbuy#J_6058091700","lastContentName":"ECS+MySQL 0.7元/日","lastContentLink":"https://www.aliyun.com/1111/enterprise"}},{"infoName":"快速入门","infoContent":{"firstContentLink":"https://help.aliyun.com/document_detail/59012.html","firstContentName":"选择集群规格","lastContentName":"产品优势","lastContentLink":"https://help.aliyun.com/document_detail/49502.html"}},{"infoName":"最佳实践","infoContent":{"firstContentLink":"https://help.aliyun.com/document_detail/119575.html","firstContentName":"数据迁移","lastContentLink":"https://help.aliyun.com/document_detail/49503.html","lastContentName":"应用场景"}},{"infoName":"产品推荐","infoContent":{"firstContentName":"云数据库Cassandra","firstContentLink":"https://www.aliyun.com/product/cds","lastContentName":"数据管理DMS","lastContentLink":"https://www.aliyun.com/product/dms"}}]}],"simplifiedDisplay":"newEdition"}}

    展开全文
  •  本文主要讲述一下存储过程参数传递的一些小细节,很多人知道参数嗅探,本例也可以理解成参数嗅探的威力加强版++ 小例子 1 ---创建测试表 2 SELECT IDENTITY(INT,1,1) AS RID, 3 * INTO TB1 4 FROM ...

    前言

      很多人认为数据库其实很简单,也没什么大深入的细节去研究,但是真正的一些细节问题决定着你的是否是专家。
      本文主要讲述一下存储过程参数传递的一些小细节,很多人知道参数嗅探,本例也可以理解成参数嗅探的威力加强版++

    小例子

     1 ---创建测试表
     2 SELECT IDENTITY(INT,1,1) AS RID,
     3 * INTO TB1
     4 FROM sys.all_columns
     5 GO
     6 ---模拟大量数据
     7 INSERT INTO TB1
     8 SELECT *
     9 FROM sys.all_columns
    10 GO 100
    11  
    12  
    13  
    14 --在 user_type_id列 创建一个索引
    15 CREATE NONCLUSTERED INDEX [NonClusteredIndex-20160625-164531] ON [dbo].[TB1]
    16 (
    17     [user_type_id] ASC
    18 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    19 GO
    20  
    21 --开启IO统计
    22 set statistics io on
    23  
    24 --测试查询执行计划
    25 select * from tb1 where user_type_id = 10
     

     

    注:本例中,语句的执行应该走索引seek + key look up

     

    测试一

     1 --测试1:使用定义变量,把参数值传递给变量
     2 
     3 create PROCEDURE dbo.USP_GetData
     4 (
     5   @PID INT 
     6 )
     7 AS
     8 BEGIN
     9 DECLARE @ID INT
    10 SET @ID= @PID
    11 SELECT *
    12 FROM TB1
    13 WHERE user_type_id = @ID
    14 END
    15 GO
    16 EXEC dbo.USP_GetData @PID=10
     

     

     结论:如果在存储过程中定义变量,并为变量SET赋值,该变量的值无法为执行计划提供参考(即执行计划不考虑该变量),将会出现预估行数和实际行数相差过大导致执行计划不优的情况

     

    测试二

     1 ---测试2 : 对参数进行运算
     2 create PROCEDURE dbo.USP_GetData2
     3 (
     4   @PID INT
     5 )
     6 AS
     7 BEGIN
     8 SET @PID=@PID-1
     9 SELECT*
    10 FROM TB1
    11 WHERE user_type_id = @PID
    12 END
    13 GO
    14 EXEC dbo.USP_GetData2 @PID=11

     

     
     

     

    结论:如果在存储过程中使用SET为存储过程参数重新赋值,执行计划仍采用执行时传入的值来生成执行计划。

     

    测试三

     1 --测试3 :对参数行进拼接
     2 
     3 create PROCEDURE dbo.USP_GetData3
     4 (
     5 @PID INT
     6 )
     7 AS
     8 BEGIN
     9 DECLARE @ID INT
    10 set @ID = 2 
    11 SET @PID = @ID + @PID
    12 SELECT *
    13 FROM TB1
    14 WHERE user_type_id = @PID
    15 END
    16 GO
    17 EXEC dbo.USP_GetData3 @PID= 8

     

     
     

     


     结论:如果在存储过程中使用新定义的变量与传入参数拼接重新赋值,执行计划仍采用执行时传入的值来生成执行计划。
     

    测试四

     1 --测试4 : 对变量进行运算 
     2 create PROCEDURE dbo.USP_GetData4
     3 (
     4   @PID INT
     5 )
     6 AS
     7 BEGIN
     8 SELECT *
     9 FROM TB1
    10 WHERE user_type_id = @PID+ 2
    11 END
    12 GO
    13 EXEC dbo.USP_GetData4 @PID=8

     

     

     

      结论:虽然传入参数在传入后被修改,但是生成执行计划时仍使用传入时的值

     

    测试五

     1 --测试5 :对变量进行复杂运算 
     2 create PROCEDURE dbo.USP_GetData5
     3 (
     4 @PID INT
     5 )
     6 AS
     7 BEGIN
     8 SELECT *
     9 FROM TB1
    10 WHERE user_type_id = @PID+ CAST(RAND()*600 AS INT)
    11 END
    12 GO
    13 EXEC dbo.USP_GetData5 @PID=8
    14 GO

     

     

     结论:对参数做复杂运算,无法获得准确的值,因此不能准确地预估行数,也不能生成合理的执行计划

     

    测试六

     1 --测试6 : 复杂运算使用变量拼接
     2 create PROCEDURE dbo.USP_GetData6
     3 (
     4 @PID INT
     5 )
     6 AS
     7 BEGIN
     8 DECLARE @ID INT
     9 set @ID = CAST(RAND()*600 AS INT)
    10 SET @PID = @ID + @PID
    11 SELECT *
    12 FROM TB1
    13 WHERE user_type_id = @PID
    14 END
    15 GO
    16 EXEC dbo.USP_GetData6 @PID=8
    17 GO

     

     
     

     

     
     
     
    结论:针对测试五可以使用参数拼接的方式,以便准确地预估行数,使用正确的执行计划
     
     

     总结

      技术支持做了比较长的时间了,遇到了很多很多坑,在这些坑中不断反思,慢慢成长!不要说什么数据库更优秀,不要说我们海量数据库需要什么什么高端的技术,其实解决问题的关键只是那么一点点的基础知识。

      注:本例中还有另外一种情况就是查询的数据量很大,那么本身走全表扫描是最优计划,而由于参数传递的问题错误的走了index seek + key look up 道理是一样的。

     

    --------------博客地址-----------------------------------------------------------------------------

    原文地址: http://www.cnblogs.com/double-K/

    如有转载请保留原文地址! 

     

     ----------------------------------------------------------------------------------------------------

    注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
    若您觉得这篇文章还不错请点击下右下角的推荐,非常感谢!

     

    转载于:https://www.cnblogs.com/double-K/p/6203202.html

    展开全文
  • 我能够使用Python从SQL存储过程中获得输出值。我找不到在Python中获取输出值的好帮手。我自己想出了Python语法,所以我怀疑这里值得一提:import sys, string, os, shutil, arcgisscriptingfrom win32...

    我能够使用Python从SQL存储过程中获得输出值。我找不到在Python中获取输出值的好帮手。我自己想出了Python语法,所以我怀疑这里值得一提:

    import sys, string, os, shutil, arcgisscripting

    from win32com.client import Dispatch

    from adoconstants import *

    #skip ahead to the important stuff

    conn = Dispatch('ADODB.Connection')

    conn.ConnectionString = "Provider=sqloledb.1; Data Source=NT38; Integrated Security = SSPI;database=UtilityTicket"

    conn.Open()

    #Target Procedure Example: EXEC TicketNumExists @ticketNum = 8386998, @exists output

    Cmd = Dispatch('ADODB.Command')

    Cmd.ActiveConnection = conn

    Cmd.CommandType = adCmdStoredProc

    Cmd.CommandText = "TicketNumExists"

    Param1 = Cmd.CreateParameter('@ticketNum', adInteger, adParamInput)

    Param1.Value = str(TicketNumber)

    Param2 = Cmd.CreateParameter('@exists', adInteger, adParamOutput)

    Cmd.Parameters.Append(Param1)

    Cmd.Parameters.Append(Param2)

    Cmd.Execute()

    Answer = Cmd.Parameters('@exists').Value

    展开全文
  • 使用存储过程参数传递BLOB字段时,大小不能超过32K,如果要传送大数据,通常的做法是使用sql语句参数传递的方式: dmmain.SQLQuery1.SQL.Add('insert into id_pic_000(sno,pic) values(''1234'',:vpic)'); ...

    使用存储过程参数传递BLOB字段时,大小不能超过32K,如果要传送大数据,通常的做法是使用sql语句参数传递的方式:

    dmmain.SQLQuery1.SQL.Add('insert into id_pic_000(sno,pic) values(''1234'',:vpic)');

    dmmain.SQLQuery1.ParamByName('vpic').asblob := _arr; //TArray<byte>

    展开全文
  •  本文主要讲述一下存储过程参数传递的一些小细节,很多人知道参数嗅探,本例也可以理解成参数嗅探的威力加强版++ 小例子 ---创建测试表 SELECT IDENTITY(INT,1,1) AS RID, * INTO TB1 FROM sys.all_...
  • 学习VS2005时间不长,这两天写一个查询功能的小程序,遇到 存储过程参数传递的问题的问题.找了几个方法都不成功:开发环境: WIN2000 SERVER VS2005 SQLSERVER 2000查询功能说明:按照所在省市公司,公司科室两个参数...
  • 一个简单select where @a语句构成的存储过程,然后用join将值传递参数a,结果数据显示不出来,但是单纯用select再用join和split分割就可以,不知道为什么,想问一下存储过程的值传递是什么样的
  • 第二个想到的是,难道存储过程中执行SQL与命令行中有差异?  DB2的资料本身不多,搜索了好一阵之后,并没有发现,有这个方面的问题,请教了一下同事,也没有遇到类似的问题。 后来转念一想,是不是有可能字段...
  • MySQL开发的存储过程几乎都需要参数。这些参数使存储过程更加灵活和有用。 在MySQL中,参数有三种模式:IN,OUT或INOUT。1,单参数 inDELIMITER $$USE dc3688$$CREATE PROCEDURE GetOfficeByCountry(IN countryName ...
  • 主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下
  • MySQL 存储过程参数简介:在本教程中,您将学习如何编写具有参数的存储过程。您还将通过几个示例来了解不同类型的参数。MySQL存储过程参数简介您开发的存储过程几乎都需要参数。这些参数使存储过程更加灵活和有用。...
  • MySQL存储过程参数简介在现实应用中,开发的存储过程几乎都需要参数。这些参数使存储过程更加灵活和有用。 在MySQL中,参数有三种模式:IN,OUT或INOUT。IN - 是默认模式。在存储过程中定义IN参数时,调用程序必须将...
  • 存储过程需要根据部门名称相关数据修改。用varray的话估计要申请很大的空间。可不可以直接传递一个String,然后在存储过程里拆分称department\_name in('A','B','C')这样的参数
  • Sql 存储过程传递参数

    千次阅读 2017-09-25 13:39:39
    Sql Server 存储过程 传递参数 有时候需要 “1,2,3” 这样的参数 --------------------------- declare @AreadBranchID nvarchar(200) set @AreadBranchID=';2;36;3;21;23;' select * from UserInfo ...
  • 这篇文章主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下 oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数...
  • MySQL开发的存储过程几乎都需要参数。这些参数使存储过程更加灵活和有用。 在MySQL中,参数有三种模式:IN,OUT或INOUT。1,单参数 inDELIMITER $$USE dc3688$$CREATE PROCEDURE GetOfficeByCountry(IN countryName ...
  • 背景:1、使用存储过程2、存储过程中有in3、in括号里面的内容作为参数传递解决方案:1、直接拼接sql可在存储过程中拼接字符串,然后执行此字符串,类似于js中的evalPROCEDURE [dbo].[INSelect]@P_0 NVARCHAR(600)AS...
  • 自己模仿着,然后成功的完成了数据库名的动态替换: CREATE DEFINER=`pnggu`@`%` PROCEDURE `district_to_db`(IN city_id int ( 20 ), IN basedb_city VARCHAR ( 255 )) BEGIN -- 参数说明:city_id:城市id;...
  • mysql存储过程功能弱问题一直是大家关注的问题,今天讲一下Mysql存储过程无法传递数组类型参数的解决方案。在很多的情况下,在编写存储过程中往往会用到数组,但是mysql中存储过程传入参数并没有可以直接传入数组的...
  • MySQL存储过程单参数或多参数传递

    千次阅读 2018-10-03 09:35:54
    MySQL开发的存储过程几乎都需要参数。这些参数使存储过程更加灵活和有用。 在MySQL中,参数有三种模式:IN,OUT或INOUT。 1,单参数 in DELIMITER $$USE dc3688$$CREATE PROCEDURE GetOfficeByCountry(IN country...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,801
精华内容 1,120
关键字:

存储过程参数传递