Quantcast
Channel: SQL Query Stalls While Importing a ClickBank XML feed into SQL Database
Viewing all articles
Browse latest Browse all 48

SQL Query Stalls While Importing a ClickBank XML feed into SQL Database

$
0
0

I was back home, and was able to test it, but Erland beat me. It takes 8 seconds to load 14393 rows.

SET NOCOUNT ON;
USE tempdb;
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[cbimport](
	[cbprodID] [int] IDENTITY(1,1) NOT NULL,
	[CategoryName] [char](50) NULL,
	[Site] [char](50) NULL,
	[Id] [char](50) NULL,
	[PopularityRank] [char](50) NULL,
	[Title] [varchar](100) NULL,
	[Description] [varchar](5000) NULL,
	[HasRecurringProducts] [char](50) NULL,
	[Gravity] [char](25) NULL,
	[EarnedPerSale] [char](25) NULL,
	[PercentPerSale] [char](25) NULL,
	[TotalEarningsPerSale] [char](25) NULL,
	[TotalRebillAmt] [char](25) NULL,
	[Referred] [char](25) NULL,
	[Commission] [char](25) NULL,
	[ActivateDate] [char](25) NULL,
	[remarks] [text] NULL,
	[void] [char](1) NULL CONSTRAINT [DF_cbimport_void]  DEFAULT ((1)),
 CONSTRAINT [PK_cbimport] PRIMARY KEY CLUSTERED
(
	[cbprodID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
);
GO
DECLARE @x xml;

SET @x = (
SELECT
	CONVERT(xml, x, 2)
FROM
	OPENROWSET(
    BULK 'c:\temp\marketplace_feed_v2\marketplace_feed_v2.xml',
    SINGLE_BLOB) AS T(x)
);

INSERT INTO dbo.cbimport (
	CategoryName,
	Title,
	Site,
	PopularityRank,
	Description,
	HasRecurringProducts,
	Gravity,
	EarnedPerSale,
	PercentPerSale,
	TotalEarningsPerSale,
	TotalRebillAmt,
	Referred,
	Commission,
	ActivateDate
	)
SELECT
	C.x.value('(Name/text())[1]', 'VARCHAR(100)'),
	a.b.value('(Title/text())[1]', 'VARCHAR(100)'),
	a.b.value('(Id/text())[1]', 'VARCHAR(100)'),
	a.b.value('(PopularityRank/text())[1]', 'VARCHAR(20)'),
	a.b.value('(Description/text())[1]', 'VARCHAR(max)'),
	a.b.value('(HasRecurringProducts/text())[1]', 'VARCHAR(5)'),
	a.b.value('(Gravity/text())[1]', 'VARCHAR(10)'),
	a.b.value('(AverageEarningsPerSale/text())[1]', 'VARCHAR(10)'),
	a.b.value('(PercentPerSale/text())[1]', 'VARCHAR(10)'),
	a.b.value('(AverageEarningsPerSale/text())[1]', 'VARCHAR(10)'),
	a.b.value('(TotalRebillAmt/text())[1]', 'VARCHAR(10)'),
	a.b.value('(Referred/text())[1]', 'VARCHAR(20)'),
	a.b.value('(Commission/text())[1]', 'VARCHAR(10)'),
	a.b.value('(ActivateDate/text())[1]', 'VARCHAR(10)')
FROM
	@x.nodes('Catalog/Category') AS C(x)
	CROSS APPLY
	C.x.nodes('Site') AS a(b);
GO
Edit: Change the path I used to access the file, and thanks for the link to the real data. I agree with Erland, that is very helpful.

AMB

Some guidelines for posting questions...


Viewing all articles
Browse latest Browse all 48

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>