SQL Server / Minimum OS Software Requirement

Background

Wanted to tabulate the minimum MS Windows OS Requirement for the various versions of MS SQL Server.

 

Minimum OS Support Matrix

SQL Server Version OS Version – Server OS Version – Desktop Bitness Link
v2017  Windows Server 2012  Windows 8 Minimum: x64 Processor: 1.4 GHz
Recommended: 2.0 GHz or fasterDoes not support 32 bit OS
 Link
v2016  Windows Server 2012  Windows 8 Minimum: x64 Processor: 1.4 GHz
Recommended: 2.0 GHz or fasterDoes not support 32 bit OS
 Link
v2014  Windows Server 2008  Windows 7  x64 Processor
x86 Processor
 Link
v2012  Windows Server 2008  Windows Vista x86 Processor: 1.0 GHz
x64 Processor: 1.4 GHz
 Link
v2008-R2  Windows Server 2003 Windows Vista
Windows XP
x64 Processor
x86 Processor
 Link
v2008  Windows Server 2003 Windows Vista
Windows XP
x64 Processor
x86 Processor
 Link
 v2005  Windows Server 2000  Windows Vista
Windows XP
600-megahertz (MHz) Pentium III-compatible or faster processor
1-gigahertz (GHz) or faster processor recommended
 Link

 Link

 v2000  Windows NT Server 4.0  Windows 98
Link
 

 

 

Neither cast ye your pearls before swine, lest they trample them

Bible Verse

Give not that which is holy unto the dogs, neither cast your pearls before swine, lest they trample them under their feet, and turn again and rend you.
( Matthew 7:6 )

 

Wikipedia

Link

  1. The metaphor seems to be teaching against giving what is holy to those who do not appreciate it. Animals such as dogs and pigs cannot appreciate religion, and this verse implies that there is some class of humans who cannot either. The identity of this class is a difficult question, as one of the dominant ideas in Christian thought is universalism.
  2. One modern argument is that dogs and pigs represent Gentiles and heathens, and that this verse is rare relic demonstrating that Jesus’ original message was intended only for the Jews. Harrington notes that such warnings are found in rabbinic works of the period.  In Jewish literature heathens were often compared to dogs, and the unclean pig was a Jewish symbol for the Roman Empire. In 2 Peter 2:22 dogs and swine quite clearly refers to heretics. According to Schweizer this verse was used by Jewish Christians to attack the Gentile churches, to argue that Gentile Christians would turn on the Jews by rejecting their laws and destroying Israel
  3. The dominant reading is that the two expressions are both referring to the same thing and the same group of people. To Nolland this verse is not an attack on any particular group, but rather a continuation of the theme of God and Mammon begun at Matthew 6:24 and that verse is an attack on wasteful spending. We should put all of our resources to God, as everything is like dogs and pigs compared to Him.  Nolland also proposes that the verse might be to balance the other verses, that non-judgmentalism can only go so far and that there are some who should be excluded.
  4. As Morris points out, this verse can also be read as a reasonable limit on evangelism. If a population or individual is not open to Christianity, leave and find a more receptive audience. As Morris points out Jesus was silent before Herod and Peter abandoned the unsympathetic city of Corinth. Fowler links this to the earlier discussion of judgment. One should not judge severely, but there is a point at which any reasonable person will realize that those they are dealing with are dogs and swine
  5. The alternate interpretation is that dogs and pigs are not metaphors for some group of people, but for the unholy in general. This verse is not about excluding some group from God’s teaching, but rather ensuring that those things that are God’s are kept holy. Thus the Temple is kept clean, religious meals treated with respect, and holy days honoured and kept separate from the turbulence and impiety of daily life.
  6. In Divine Conspiracy, Dallas Willard offers another interpretation. In it, Jesus is not speaking of a wonderful treasure (the pearl), or whether the audience is fit to have it (the swine). Instead, he is observing that the pearl is not helpful. “Pigs cannot digest pearls, cannot nourish themselves upon them.” He concludes that this reflects “our efforts to correct and control others by pouring out our good things” that our audience is not ready for, and that our seemingly good intentions will ultimately yield anger, resentment and attack by the audience. This turns the analogy into one that exposes one’s self-superiority in thinking the other needs the unbidden advice.
  7. All those points aside, one might usefully read through Matthew 13 when interpreting the phrase. The “pearls” may be like the seed sown by the farmer. If the farmer continues to sow on the rocky places, path or among thorns he may be foolish. The farmer may be wiser to sow in the good soil; or suffer weaker harvests (albeit the crops that do grow among weeds and/or thorns or in other, harder, places may prove more hardy: having survived and then been considered “good enough to keep” by the farmer despite the effects of the weeds and/or thorns). Like the seeds, pearls (of wisdom) placed before swine might simply be swallowed without being digested: repeated without understanding (perhaps as Jesus saw others of his time repeating scripture without understanding it). Matthew 13:44-46 opens this interpretation up a little further. As a more contemporary note, it is worth considering the sowing parables in light of subsequent monastic thought on selective breeding (see Augustinian Friar, Gregor Mendel and peas): the seeds from the crops that survived the weeds, thorns, path or rock may provide stronger, more durable, seed for sowing in all types of situation – albeit there may be differences in taste and quality to consider too.

Videos

  1. Calvary Chapel Ontario
    • Pastor Paul LeBoutillier
      • Videos
        • YouTube

 

 

 

Microsoft – Excel – SubTotals

Background

I have a situation where I need to summarize some data and I don’t really want to do so in a database.

 

SQL Server

In Database we have roll-up and Windowing Functions.

And, it is really likely the way I should go.

 

Excel

But, as the data is not in a database, I will really rather not bring it in.

I will just use Excel and send the Excel file to our business partner.

 

Data in Excel

Menu

Menu – Data

Menu – Data – Outline

 

SubTotal

Subtotal – Process – Category – Country

Click the Data menu option.

Select the range of data by clicking on the column header as well on last data row.

Click the Subtotal menu option…

Subtotal –  Operation

Image

Explanation

  1. At each change in : Country
  2. Use function :- Sum
  3. Add Subtotal to : Population
  4. Replace current options :- Checked
  5. Page break between groups :- Not Checked
  6. Summary below data :- Checked

 

Subtotal –  Results

Image

Explanation

  1. We have subtotals for our two countries, Canada & US
  2. And, we have a Grand Total

Subtotal – Process – Category – State

Subtotal –  Operation

Image

Explanation

  1. At each change in : State
  2. Use function :- Sum
  3. Add Subtotal to : Population
  4. Replace current options :- Not Checked
  5. Page break between groups :- Not Checked
  6. Summary below data :- Checked

 

Subtotal –  Results

Image

Explanation

  1. We have subtotals for State/Regions
  2. Cumulative subtotals for the countries
  3. And, we have a Grand Total

 Summary

To add secondary sub-totals please make sure to un-check “Replace current options” in the subtotal window.

 

WMI – Error – “0x8004100E”

Background

Trying to steal and use someone else’s code does not do well for me.

Here I am having stolen a code, but stuck with bad characters and an error message.

Code ( Original )


OPTION EXPLICIT

Dim strComputer
Dim URL
Dim objWMIService
Dim colItems
Dim objItem


strComputer = "."

URL="winmgmts:\\" & strComputer & "\root\Microsoft\SqlServer\ComputerManagement10"

Wscript.Echo "URL is "& URL

set objWMIService = GetObject(URL)

Set colItems = objWMIService.ExecQuery("SELECT * FROM SecurityCertificate",,48)

For Each objItem in colItems

	Wscript.Echo ""

	Wscript.Echo "SecurityCertificate instance"
	Wscript.Echo ""
	Wscript.Echo "ExpirationDate: " & objItem.ExpirationDate
	Wscript.Echo "FriendlyName: " & objItem.FriendlyName
	Wscript.Echo "IssuedBy: " & objItem.IssuedBy
	Wscript.Echo "IssuedTo: " & objItem.IssuedTo
	Wscript.Echo "Name: " & objItem.Name
	Wscript.Echo "SHA: " & objItem.SHA
	Wscript.Echo "StartDate: " & objItem.StartDate
	Wscript.Echo "SystemStore: " & objItem.SystemStore


Next

 

Error

Error Image

Error Message


(null): 0x8004100E

Trouble Shooting

WMI Code Creator

Download WMI Code Creator from here.

Extract

Extract the compressed ( zip) file.

Run

Run the file.

Namespace

Looked at the NameSpaces…

They are version specific.

The one I want is root\Microsoft\SqlServer\ComputerManagement12.

But, the one referenced in the code is root\Microsoft\SqlServer\ComputerManagement10.

On this particular box I am on SQL Server v2014.

And, so ComputerManagement12 is SQL 2014.

While ComputerManagement10 is SQL Server 2008.

 

Code ( Revised )

Code revised for v2014.

 

OPTION EXPLICIT
On error resume next

Dim strComputer
Dim baseURL
Dim sqlServerVersion
Dim URL
Dim objWMIService
Dim colItems
Dim objItem
Dim query

strComputer = "."

baseURL="winmgmts:\\" & strComputer & "\root\Microsoft\SqlServer\"
rem comment out version information
rem sqlServerVersion="ComputerManagement10"
sqlServerVersion="ComputerManagement12"

URL=baseURL & sqlServerVersion

set objWMIService = GetObject(URL)

if (Err.Number <> 0) then

	Wscript.Echo "GetObject failed on " & URL
	Wscript.Echo "Error Number is " & CSTR(Err.Number)
	Wscript.Echo "Error Description is " & Err.Description

	Wscript.Quit
	
end if

query = "SELECT * FROM SecurityCertificate"

Set colItems = objWMIService.ExecQuery(query,,48)


if (Err.Number <> 0) then

	Wscript.Echo "ExecQuery failed on " & query
	Wscript.Echo "Error Number is " & CSTR(Err.Number)
	Wscript.Echo "Error Description is " & Err.Description

	Wscript.Quit
	
end if

For Each objItem in colItems

	Wscript.Echo ""

	Wscript.Echo "SecurityCertificate instance"
	Wscript.Echo ""
	Wscript.Echo "ExpirationDate: " & objItem.ExpirationDate
	Wscript.Echo "FriendlyName: " & objItem.FriendlyName
	Wscript.Echo "IssuedBy: " & objItem.IssuedBy
	Wscript.Echo "IssuedTo: " & objItem.IssuedTo
	Wscript.Echo "Name: " & objItem.Name
	Wscript.Echo "SHA: " & objItem.SHA
	Wscript.Echo "StartDate: " & objItem.StartDate
	Wscript.Echo "SystemStore: " & objItem.SystemStore


Next

SQL Server 2017 – Developer Edition – ISO

Background

Currently, I have SQL Server 2014 Developer Edition on my laptop.

Recently found out that since my machine is now Windows 10, I can have SQL Server 2017 Developer Edition.

 

Download ISO

Let us go download v2017 Developer Edition.

v2017 is available here.

Available

Image

Textual

  1. Free Trial Evaluation
  2. Developer edition
  3. Express edition

Developer Edition

If we click on the “Download now” button underneath the “Developer edition“, we will notice that the name of the file that will be availed is SQLServer2017-SSEI-Dev.exe.

Already have that file and it is a small file.

I don’t really want a small file, I want the full ISO.

 

Self-Prepare ISO

Download Bootstrap

To get a nice ISO, please process with downloading SQLServer2017-SSEI-Dev.exe.

 

Prepare ISO

Outline

  1. Select an installation type
  2. Specify SQL Server Installer download
    • Which package will you like to download
      • ISO
      • CAB
    • Click on the Browser folder button
      • Choose an existing folder or create a new folder
      • Click the OK button
    • Click the OK button
  3. Download Media

Screen shot

Select an Installation Type

 

Specify SQL Server Installer download

Browse Folder

Download Media

Download Successful

 

Installed

Once the files was packaged into a nice ISO, was able to install it.

 

Conclusion

So unfortunately, it appears that one cannot download v2017 as a nice offline ISO.

But, please do not let that overly deter you.

Go ahead and download SQLServer2017-SSEI-Dev.exe and run it.

You will be able to prepare an ISO through running that package.

SQL Server – Dynamic SQL Queries – Duplicate Plans ?

Background

In the last couple of weeks we have taken a sure aim at some of our dynamic queries.

This morning came in and started reviewing our cached plans and noticed that we might have duplicates.

 

Cached Plans

Image

Here is a slimmed down version of our cached Plans

Explanation

I was wondering why it seems I have duplicate entries filtering on timePeriod, stateLimit, and Phone.

The first entry has 2040 hits and the other 134 matches.

 

Comparison

SQL Server Management Studio ( SSMS )

I tried to compare the plans using SQL Server Management Studio v2017, but nothing jumped at me.

 

Dynamic Management Views

sys.dm_exec_plan_attributes

I also looked at the normal causes such as:

  1. userid
    • attribute user_id
  2. Set Options
    • Attribute set_options
      • Quoted Identifier
      • Ansi Nulls

 

Text File Comparison

I then saved the query plans into text files and used an online text comparison tool.

DiffNow

DiffNow is here.

From the few differences between the files, here is why my eyes finally rested.

Image

 

Explanation

  1. Saw that @stateLimit only appears in the second plan

 

In Code

Output

Using XQuery was able to confirm that different queries is indeed attributable to slight variation in filtering columns.

Parameter List

Sample 1

 

Sample 2

 

Take away

Thankfully considering text file comparison got me closer to identifying the causation of the “duplicate” plans.