Skip to main content

T SQL : Querying XML with Attributes takes so long to load with Resolution

-- This will take time to load up (almost FOREVER?) :(

SELECT *
FROM 
(SELECT
[TestId] = 999  
-- Attribute(s):
,col.value('../@JeepNumber', 'varchar(10)') as JeepNumber
,col.value('../@AccountPeriod', 'varchar(10)') as AccountPeriod
,col.value('../@TotalNonConformityDeviation', 'decimal(18,2)') as TotalNonConformityDeviation
,col.value('../@TotalWorkhours', 'decimal(18,2)') as TotalWorkhours
-- Normal column(s):
,col.value('data(PersonEmployeeId[1])', 'int') as PersonEmployeeId
,col.value('data(RankCode[1])', 'varchar(10)') as RankCode
,col.value('data(PeriodDate[1])', 'varchar(10)') as PeriodDate
,col.value('data(Comments[1])', 'varchar(max)') as Comments
,col.value('data(RestHourApplicableIn24hHourPeriod[1])', 'decimal(18,2)') as RestHourApplicableIn24hHourPeriod
,col.value('data(RestHourApplicableIn7DayPeriod[1])', 'decimal(18,2)') as RestHourApplicableIn7DayPeriod 
,col.value('data(RestHourIntervalCode[1])', 'varchar(5)') as RestHourIntervalCode
,col.value('data(PeriodValue[1])', 'varchar(1)') as PeriodValue
FROM  
@XmlAltered.nodes('/RestHours/RestHour') tbl(col)) x 


-- Resolution (3 seconds to load):
-- Extract Attribute(s):
DECLARE 
@JeepNumber varchar(10)
,@AccountPeriod varchar(10)
,@TotalNonConformityDeviation decimal(18,2)
,@TotalWorkhours decimal(18,2)

SELECT 
@JeepNumber = x.JeepNumber 
,@AccountPeriod = x.AccountPeriod
,@TotalNonConformityDeviation = x.TotalNonConformityDeviation 
,@TotalWorkhours = x.TotalWorkhours
FROM 
(SELECT TOP 1
-- Attribute(s):
col.value('../@JeepNumber', 'varchar(10)') as JeepNumber
,col.value('../@AccountPeriod', 'varchar(10)') as AccountPeriod
,col.value('../@TotalNonConformityDeviation', 'decimal(18,2)') as TotalNonConformityDeviation
,col.value('../@TotalWorkhours', 'decimal(18,2)') as TotalWorkhours
FROM  
@XmlAltered.nodes('/RestHours/RestHour') tbl(col)) x 


-- Combined attributes extacted above
SELECT 
[JeepNumber] =  @JeepNumber
,[AccountPeriod] = @AccountPeriod  
,[TotalNonConformityDeviation] = @TotalNonConformityDeviation              
,[TotalWorkhours] = @TotalWorkhours                           
,x.*
FROM 
(SELECT
[TestId] = 999  
,col.value('data(PersonEmployeeId[1])', 'int') as PersonEmployeeId
,col.value('data(RankCode[1])', 'varchar(10)') as RankCode
,col.value('data(PeriodDate[1])', 'varchar(10)') as PeriodDate
,col.value('data(Comments[1])', 'varchar(max)') as Comments
,col.value('data(RestHourApplicableIn24hHourPeriod[1])', 'decimal(18,2)') as RestHourApplicableIn24hHourPeriod
,col.value('data(RestHourApplicableIn7DayPeriod[1])', 'decimal(18,2)') as RestHourApplicableIn7DayPeriod 
,col.value('data(RestHourIntervalCode[1])', 'varchar(5)') as RestHourIntervalCode
,col.value('data(PeriodValue[1])', 'varchar(1)') as PeriodValue
FROM  
@XmlAltered.nodes('/RestHours/RestHour') tbl(col)) x 



Comments

Popular posts from this blog

Ubuntu 16.04 LT - Installing Chromium browser

> Type these commands about this PPA : $ sudo add-apt-repository ppa:canonical-chromium-builds/stage $ sudo apt-get update $ sudo apt-get install chromium-browser > Terminal: mccrazy@Lenovo-N22:~$ sudo add-apt-repository ppa:canonical-chromium-builds/stage [sudo] password for mccrazy:  Testing site just before upload to Ubuntu main. Things here are either broken and not ready to use, or landing in the distro anyway very soon. You shouldn't use this.  More info: https://launchpad.net/~canonical-chromium-builds/+archive/ubuntu/stage Press [ENTER] to continue or ctrl-c to cancel adding it gpg: keyring `/tmp/tmp6cfppy_r/secring.gpg' created gpg: keyring `/tmp/tmp6cfppy_r/pubring.gpg' created gpg: requesting key 5B393194 from hkp server keyserver.ubuntu.com gpg: /tmp/tmp6cfppy_r/trustdb.gpg: trustdb created gpg: key 5B393194: public key "Launchpad PPA for Canonical Chromium Build Team" imported gpg: Total number processed: 1 gpg:               imported: 1  (RSA

Ubuntu 20.04 LTS | Installing OpenJDK 11 (LTS) JDK, JRE, HotSpot

https://adoptopenjdk.net/installation.html#linux-pkg ctrl + f => Linux RPM and DEB installer packages bboy@bboy-LE7450:~$ cat /etc/os-release | grep UBUNTU_CODENAME UBUNTU_CODENAME=focal bboy@bboy-LE7450:~$ sudo apt-get install wget apt-transport-https gnupg [sudo] password for bboy: Reading package lists... Done Building dependency tree       Reading state information... Done wget is already the newest version (1.20.3-1ubuntu1). wget set to manually installed. gnupg is already the newest version (2.2.19-3ubuntu2.1). gnupg set to manually installed. The following packages were automatically installed and are no longer required:   linux-headers-5.8.0-45-generic linux-hwe-5.8-headers-5.8.0-45   linux-image-5.8.0-45-generic linux-modules-5.8.0-45-generic   linux-modules-extra-5.8.0-45-generic Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed:   apt-transport-https 0 upgraded, 1 newly installed, 0 to remove and 21 not upgraded. Need to get 1,