返回顶部
首页 > 资讯 > 数据库 >如何进行Sqlserver数据写入表的测试
  • 120
分享到

如何进行Sqlserver数据写入表的测试

2024-04-02 19:04:59 120人浏览 安东尼
摘要

如何进行sqlserver数据写入表的测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 1、创

如何进行sqlserver数据写入表的测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1、创建表:
BEGIN TRANSACTioN
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
Go
CREATE TABLE dbo.Table_3
(
id int NOT NULL,
company_id nvarchar(MAX) NULL,
number nvarchar(MAX) NULL,
code nvarchar(MAX) NULL,
input_tele bigint NULL,
type nvarchar(MAX) NULL
)  ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE dbo.Table_3 SET (LOCK_EScalaTION = TABLE)
GO
COMMIT


2、测试表插入
对表插入200000条记录:
set nocount on
declare @i int
set @i = 0
while @i < 200000
begin
insert into Table_3 values (@i,'abcd','123','234','345','567')
set @i = @i +1
end
go

耗时3分11秒。

dbcc showcontig('Table_3')
go
DBCC SHOWCONTIG 正在扫描 'Table_3' 表...
表: 'Table_3' (370100359);索引 ID: 0,数据库 ID: 5
已执行 TABLE 级别的扫描。
- 扫描页数................................: 1482
- 扫描区数..............................: 188
- 区切换次数..............................: 187
- 每个区的平均页数........................: 7.9
- 扫描密度 [最佳计数:实际计数].......: 98.94% [186:188]
- 区扫描碎片 ..................: 1.60%
- 每页的平均可用字节数.....................: 403.7
- 平均页密度(满).....................: 95.01%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

未加索引表大小:
如何进行Sqlserver数据写入表的测试
加索引后表大小:
dbcc showcontig('Table_3')
go

DBCC SHOWCONTIG 正在扫描 'Table_3' 表...
表: 'Table_3' (386100416);索引 ID: 1,数据库 ID: 5
已执行 TABLE 级别的扫描。
- 扫描页数................................: 1087
- 扫描区数..............................: 136
- 区切换次数..............................: 135
- 每个区的平均页数........................: 8.0
- 扫描密度 [最佳计数:实际计数].......: 100.00% [136:136]
- 逻辑扫描碎片 ..................: 0.00%
- 区扫描碎片 ..................: 3.68%
- 每页的平均可用字节数.....................: 0.3
- 平均页密度(满).....................: 100.00%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
如何进行Sqlserver数据写入表的测试

清空表数据。
修改表结构:
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_Table_3
(
id int NOT NULL,
company_id varchar(50) NULL,
number varchar(50) NULL,
code varchar(50) NULL,
input_tele bigint NULL,
type varchar(50) NULL
)  ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_Table_3 SET (LOCK_ESCALATION = TABLE)
GO
IF EXISTS(SELECT * FROM dbo.Table_3)
EXEC('INSERT INTO dbo.Tmp_Table_3 (id, company_id, number, code, input_tele, type)
SELECT id, CONVERT(varchar(50), company_id), CONVERT(varchar(50), number), CONVERT(varchar(50), code), input_tele, CONVERT(varchar(50), type) FROM dbo.Table_3 WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Table_3
GO
EXECUTE sp_rename N'dbo.Tmp_Table_3', N'Table_3', 'OBJECT' 
GO
COMMIT


对表插入200000条记录:
set nocount on
declare @i int
set @i = 0
while @i < 200000
begin
insert into Table_3 values (@i,'abcd','123','234','345','567')
set @i = @i +1
end
go

耗时3分07秒。

dbcc showcontig('Table_3')
go

DBCC SHOWCONTIG 正在扫描 'Table_3' 表...
表: 'Table_3' (386100416);索引 ID: 0,数据库 ID: 5
已执行 TABLE 级别的扫描。
- 扫描页数................................: 1143
- 扫描区数..............................: 145
- 区切换次数..............................: 144
- 每个区的平均页数........................: 7.9
- 扫描密度 [最佳计数:实际计数].......: 98.62% [143:145]
- 区扫描碎片 ..................: 2.07%
- 每页的平均可用字节数.....................: 397.0
- 平均页密度(满).....................: 95.10%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。




truncate table Table_3后:
dbcc showcontig('Table_3')
go

DBCC SHOWCONTIG 正在扫描 'Table_3' 表...
表: 'Table_3' (386100416);索引 ID: 0,数据库 ID: 5
已执行 TABLE 级别的扫描。
- 扫描页数................................: 0
- 扫描区数..............................: 0
- 区切换次数..............................: 0
- 每个区的平均页数........................: 0.0
- 扫描密度 [最佳计数:实际计数].......: 100.00% [0:0]
- 区扫描碎片 ..................: 0.00%
- 每页的平均可用字节数.....................: 0.0
- 平均页密度(满).....................: 0.00%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

对表加索引:
对id字段加主键聚集索引:
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Table_3 ADD CONSTRaiNT
PK_Table_3 PRIMARY KEY CLUSTERED 
(
id
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]


GO
ALTER TABLE dbo.Table_3 SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

对表插入200000条记录:
set nocount on
declare @i int
set @i = 0
while @i < 200000
begin
insert into Table_3 values (@i,'abcd','123','234','345','567')
set @i = @i +1
end
go

dbcc showcontig('Table_3')
go

DBCC SHOWCONTIG 正在扫描 'Table_3' 表...
表: 'Table_3' (386100416);索引 ID: 1,数据库 ID: 5
已执行 TABLE 级别的扫描。
- 扫描页数................................: 1087
- 扫描区数..............................: 139
- 区切换次数..............................: 138
- 每个区的平均页数........................: 7.8
- 扫描密度 [最佳计数:实际计数].......: 97.84% [136:139]
- 逻辑扫描碎片 ..................: 0.55%
- 区扫描碎片 ..................: 2.16%
- 每页的平均可用字节数.....................: 0.3
- 平均页密度(满).....................: 100.00%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

先加索引后插入数据后表大小:
如何进行Sqlserver数据写入表的测试

对于20W的数据量:
建好表,插入数据,再加索引。
建好表,建好索引,再插入数据。
感觉时间花费上差不多,空间消耗上也差不多。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 如何进行Sqlserver数据写入表的测试

本文链接: https://lsjlt.com/news/67786.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何进行Sqlserver数据写入表的测试
    如何进行Sqlserver数据写入表的测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 1、创...
    99+
    2024-04-02
  • 如何进行MySQL构造测试数据
    这篇文章给大家介绍如何进行MySQL构造测试数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 构造测试数据(笛卡尔积,6 次100 万)create ta...
    99+
    2024-04-02
  • SqlServer 2008如何创建测试数据
    小编给大家分享一下SqlServer 2008如何创建测试数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!包含要点: 数据库的...
    99+
    2024-04-02
  • Sqlserver如何把查询的数据insert进入新表
    首先建立新表: 然后用SQL实现把查询的数据insert进入新表: Insert into test.dbo.tmp_tj001(server_principal_name,object_name,max...
    99+
    2024-04-02
  • 如何进行Elasticsearch数据写入的分析
    这期内容当中小编将会给大家带来有关如何进行Elasticsearch数据写入的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言主要讲 ES -> Lucene...
    99+
    2024-04-02
  • 如何进行sysbench测试
    如何进行sysbench测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。sysbench支持以下几种测试模式:1、CPU运算...
    99+
    2024-04-02
  • JMeter如何对MySQL数据库进行压力测试
    这篇文章将为大家详细讲解有关JMeter如何对MySQL数据库进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装并配置 JMeter下载官网下载,下载二进制的这个 zip配置环境变量然后解...
    99+
    2023-06-28
  • 如何向SQLServer表中插入数据
    要向SQL Server表中插入数据,您可以使用INSERT INTO语句。以下是一个示例: INSERT INTO table_n...
    99+
    2024-04-09
    SQLServer
  • 如何进行opencv vector 测试
    这篇文章给大家介绍如何进行opencv vector 测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。#include <iostream>#include <cv.h>#...
    99+
    2023-06-04
  • PHP 函数如何进行单元测试
    php 单元测试用于验证独立函数或模块的功能,使用 phpunit 框架。包含以下步骤:安装 phpunit,创建以 test 结尾继承自 phpunit_framework_testc...
    99+
    2024-04-10
    php 单元测试 composer
  • Go单元测试对数据库CRUD进行Mock测试
    目录前言go-sqlmock安装使用示例miniredis安装使用示例总结前言 最近在实践中也总结了一些如何用表格驱动的方式使用 gock Mock测试外部接口调用。以及怎么对GOR...
    99+
    2024-04-02
  • sqlserver创建表后如何输入数据
    要向SQL Server表中输入数据,你可以使用INSERT语句。以下是一个示例: INSERT INTO 表名 (列1, 列2, ...
    99+
    2024-04-02
  • 如何进行sandbox和MHA的测试
    本篇文章为大家展示了如何进行sandbox和MHA的测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 昨天写了一篇使用脚本搭建一主多从的脚本之后,奇龙兄建议我看...
    99+
    2024-04-02
  • 如何进行PHP的单元测试?
    随着软件开发的不断发展,测试已经成为开发过程中不可或缺的一部分。在进行测试时,单元测试是非常重要的一种测试方式。在 PHP 中,使用单元测试可以有效地减少代码中存在的错误,提高代码质量。本文将向你介绍如何进行 PHP 的单元测试。一、什么是...
    99+
    2023-05-14
    PHP 单元测试 测试覆盖率
  • 如何进行orion的简单测试
    如何进行orion的简单测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。orion是一个做IO测试的小巧工具,可以测试随机读写,模拟混合负载等。在oracle 11g已经...
    99+
    2023-06-06
  • 在进行并行表测试用例时如何推迟测试服务器关闭?
    大家好,今天本人给大家带来文章《在进行并行表测试用例时如何推迟测试服务器关闭?》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!问...
    99+
    2024-04-05
  • sqlserver如何删除表中一行数据
    要删除表中的一行数据,可以使用DELETE语句。具体语法如下: DELETE FROM 表名 WHERE 条件; ...
    99+
    2024-04-09
    sqlserver
  • win10如何进入测试模式
    要进入Windows 10的测试模式,您可以按照以下步骤操作:1. 打开“设置”应用程序:您可以通过开始菜单中的搜索栏,在搜索框中键...
    99+
    2023-09-08
    win10
  • C++ 函数库如何进行单元测试?
    在 c++++ 函数库中使用 google test 进行单元测试可确保其可靠性,具体步骤如下:安装 google test为函数库创建单元测试:创建“.test.cpp”文件并包含 g...
    99+
    2024-04-19
    c++ 单元测试 git
  • python如何进行基准测试
    基准测试属于性能测试的一种,用于评估和衡量软件的性能指标。我们可以在软件开发的某个阶段通过基准测试建立一个已知的性能水平,称为"基准线"。当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。 ...
    99+
    2022-06-02
    python 基准测试 python 测试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作