SQL Server Management Studio ( SSMS ) – Non-Printable Characters

 

Background

Through the use of a Microsoft LightSwitch application that we are working on, I have been eating my dog food.

 

Data Entry

As one who hates the sheer drudgery of data entry, I end up doing quite a bit of copy and paste.

I copy and paste data from the original Excel file into the LightSwitch application.

And, things have been mostly OK; as the data that needs to be copied over is minimal.

But, recently I started noticing little errors cropping up.

I launched SQL Server Profiler and noticed the errors are due to referential integrity.

The error was traced to trying to place data into secondary tables whereas those same data are not in our primary data.

 

TroubleShooting

 

Query Data

Launched Sql Server Management Studio ( SSMS ), and queried for the data and they appear to be in the Primary table.

 

Issue

After a bit of head scratching traced the problem back to white spaces at the end of the primary key fields.

 

Remediation

As always took to the Net to determine fixes and workarounds.

Outline

Here are the workarounds that we found thus far:

  1. Using Transact SQL
    • Identify data that have non-printable characters ( CRLF )
    • Strip out the Non-Printable characters

 

Code

Using Transact SQL

Here the functions that I found on the Net

Sourced

  1. dbo.fn_ShowWhiteSpace
  2. dbo.fn_nonPrintableStringClean

 

Code Snippet

 
use master
go
 

 
if schema_id('npc') is null
begin
 
    exec('create schema [npc] authorization [dbo];');
 
end
go
 
if object_id('[npc].[fn_ShowWhiteSpace]') is null
begin
 
    exec('CREATE FUNCTION [npc].[fn_ShowWhiteSpace]() RETURNS varchar(8000) AS BEGIN return 1/0 END')
 
end
go
 
ALTER FUNCTION [npc].[fn_ShowWhiteSpace]
(
    @str varchar(8000)
)
RETURNS varchar(8000)
AS
BEGIN
    /*
        Michael Riley - AKA Gunny
        <a href="http://stackoverflow.com/questions/8655909/whats-the-best-way-to-identify-hidden-characters-in-the-result-of-a-query-in-sq">http://stackoverflow.com/questions/8655909/whats-the-best-way-to-identify-hidden-characters-in-the-result-of-a-query-in-sq</a>
 
        Michael Riley - AKA Gunny - Profile
        <a href="http://stackoverflow.com/users/195983/michael-riley-aka-gunny">http://stackoverflow.com/users/195983/michael-riley-aka-gunny</a>
 
    */
 
     DECLARE @ShowWhiteSpace varchar(8000);
     DECLARE @expanded bit
 
     set @expanded = 1
 
     SET @ShowWhiteSpace = @str
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(32), '[?]')
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(13), '[CR]')
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(10), '[LF]')
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(9),  '[TAB]')
 
     if (@expanded = 1)
     begin
 
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(1),  '[SOH]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(2),  '[STX]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(3),  '[ETX]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(4),  '[EOT]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(5),  '[ENQ]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(6),  '[ACK]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(7),  '[BEL]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(8),  '[BS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(11), '[VT]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(12), '[FF]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(14), '[SO]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(15), '[SI]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(16), '[DLE]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(17), '[DC1]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(18), '[DC2]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(19), '[DC3]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(20), '[DC4]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(21), '[NAK]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(22), '[SYN]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(23), '[ETB]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(24), '[CAN]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(25), '[EM]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(26), '[SUB]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(27), '[ESC]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(28), '[FS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(29), '[GS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(30), '[RS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(31), '[US]')
 
    end --if (@expanded = 1)
 
    RETURN(@ShowWhiteSpace)
 
END
go
 
grant execute on [npc].[fn_ShowWhiteSpace] to public
go

 

 

 

 
use [master]
go
 
set ansi_nulls on
go
set quoted_identifier on
go
 

if schema_id('npc') is null
begin
 
    exec('create schema [npc] authorization [dbo];');
 
end
go
 
if object_id('[npc].[fn_StringClean]') is null
begin
 
    exec('CREATE FUNCTION [npc].[fn_StringClean]() RETURNS varchar(8000) AS BEGIN return 1/0 END')
 
end
go
 
ALTER function [npc].[fn_StringClean] 
(
 @strIn as varchar(8000)
)
returns varchar(8000)
as
begin
 
    /*
        Blog
        How to remove unprintable characters from various fields in table
        <a href="https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1bf3e072-f194-4bff-87ee-07376927a7f8/how-to-remove-unprintable-characters-from-various-fields-in-table?forum=transactsql">https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1bf3e072-f194-4bff-87ee-07376927a7f8/how-to-remove-unprintable-characters-from-various-fields-in-table?forum=transactsql</a>
 
        Profile:
        NaveenCR
        <a href="https://social.msdn.microsoft.com/profile/naveencr/?ws=usercard-mini">https://social.msdn.microsoft.com/profile/naveencr/?ws=usercard-mini</a>
    */
 
    declare @iPtr as int
 
    set @iPtr = patindex('%[^ -~0-9A-Z]%', @strIn COLLATE LATIN1_GENERAL_BIN)
 
    while @iPtr > 0 
    begin
    
      set @strIn = replace(@strIn COLLATE LATIN1_GENERAL_BIN, substring(@strIn, @iPtr, 1), '')
 
      set @iPtr = patindex('%[^ -~0-9A-Z]%', @strIn COLLATE LATIN1_GENERAL_BIN)
 
     end
 
     return ( @strIn )
 
end
go
 
grant execute on [npc].[fn_StringClean] to public
go

 

 

Lab

Code
 

 

    select 
 
              tblLS.[serverName]
 
            , [serverName_Len] 
                = len(tblLS.[serverName])
 
            , [serverNameTrim]
                 = ltrim(rtrim(tblLS.[serverName]))
 
            , [serverName_Trim(Len]
                 = len(ltrim(rtrim(tblLS.[serverName])))
 
            , [ShowWhiteSpace]
                = [master].dbo.[fn_ShowWhiteSpace](tblLS.servername)
 
            , [serverName_NPClean]
                 = [master].[npc].[fn_StringClean]  (tblLS.[serverName])
 
            , [serverName_NPClean_Len] 
                = datalength([master].[npc].[fn_StringClean]  (tblLS.[serverName]))
 
    from   [DBLAB].dbo.[listofServers.2017022] tblLS
 
    where  (
                (
                    (
                         tblLS.servername 
                            != [master].[npc].[fn_StringClean] (tblLS.servername) 
                    )
                )
          )    

 

 

 

Output

dbo_listofservers_20170222_1036pm

 

Explanation
  1. Here are the columns that are being shown
    1. serverName
      • The actual Server Name
      • The length of the Server Name
    2. serverName Trimmed
      • Using ltrim and rtrim we trim the Server Name
      • We get the length of the trimmed column
    3. Show whitespace
      • Show the serverName and display Non-Printable characters
    4. Show “Cleaned” serverName
      • Show cleaned Server Name
      • Show length of cleaned Server Name

 

Microsoft Connect Items

  1. SQl Server Management Studio should show new lines in records. – by Michael Freidgeim
    • Submitted By :- Michael Freidgeim
    • Item ID :-381955
    • Date Submitted :- 2008-Nov-14th 4 AM
    • Link
    • Description:-
      • 1. If there are newLines characters in the record data, SQl Server Management Studio in Grid view shows the record as one string, without indication that newlines are present.
        It causes confusion to the user, invalid interpretation of the data and even data loss.See scenario in my post
        http://geekswithblogs.net/mnf/archive/2008/11/13/sql-server-management-studio-doesnt-show-new-lines-in-records.aspx
        It will be good if newLines will be shown as actual new lines(consistent with SQL Server 2000 Enterprize Manager) or as some special character(e.g \n or |) to inform user.
        Ideally method on new line presentation could be configured in Tools/Options/Query Results/SQL Server/Results to Grid.
      • 2. By the way, separate suggestion: make Results to Text Maximum Length of the output default  to 8192  (rather than 256) to avoid truncations, that are not obvious.
    • Microsoft Feedback
      • Posted by Seshagiri ( Microsoft ) on 2011-May-31st 7:33 AM
        • Hi Michael,
          This is related to the connect item 381955. We evaluated the feedback carefully and are able to reproduce the cases you listed. However because of the following reasons we are unfortunately not able to attend to this request:

          • 1. new lines in grid
            When using the results to grid option, we use the standard Windows grid control to display the results. This grid control treats each cell value as a plain text and hence the new line characters are ignored. The Save as function when executed from the results section just takes the content from the grid as it is and hence the newline is not found in the new file created from the grid. However if you use the results to text option or the results to file the new line characters are retained. SSMS is not really intended to be a reporting tool, so we are unable to spend much time on the result formatting, especially if some workarounds exist like mentioned above.
          • 2. Max characters when using results to text
            The number specified here is used to preallocate memory for the text column data. A larger value for default could mean lot of unnecessary memory being allocated but not used. Hence it is left to the user to increase the value based on their needs.
            I hope the above sounds reasonable. I am currently closing the issue as a wont-fix. However in case there is anything not mentioned previously please let us know and we will surely take a relook.
          • Thank you
            Seshagiri
            PM, SSMS

SQL Server – SQL Server Agent – Job “Job History (OptimizePlan.Subplan_1)” Failed

Background

Reviewing SQL Server Agent jobs found ones that consistency fails.

One of them is a Maintenance Plan that Organizes Indexes.

 

Error Message

SQL Server Agent

Image

jobhistory-optimizeplan-subplan-20170222-0245pm-cropped-up

 

Textual

Executed as user: DBLAB\sql. … Version 11.0.6020.0 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved. Started: 3:00:40 PM Progress: 2017-02-22 15:00:41.05 Source: {04448243-3A2E-4299-BC33-5780CE3F7DEC} Executing query “DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp…”.: 100% complete End Progress Progress: 2017-02-22 15:00:43.82 Source: Progress Progress: 2017-02-22 15:00:43.86 Source: Reorganize Index Task Execut… The package execution fa… The step failed.

 

TroubleShooting

Maintenance Plan

Review the Maintenance Plan and here is what things look like.

OptimizePlan

Image

maintenanceplan_optimizeplan_20170222_0249pm-cropped-up

 

OptimizePlan

Reporting and Logging

Reporting and Logging ( Default )

Here is the default setting with “Log extended information” off.

reportingandlogging_20170222_0250pm

Reporting and Logging ( Post Changes )

Here is what happens when we set “Log extended information” on.

reportingandlogging_20170222_0259pm

 

Logfiles

Went to the identified Log Folder and sought for files matching the maintenance Plan we are trying to dig into.

optimizeplan_folder_20170222_0251pm

 

Logfile Contents

Image

content_20170222_0449pm

Text


USE [LNCD]
GO
ALTER INDEX [NCD_PK] ON [dbo].[NCD] REORGANIZE WITH ( LOB_COMPACTION = ON )
GO
USE [LNCD]
GO
ALTER INDEX [RelatedCase_PK] ON [dbo].[RelatedCase] REORGANIZE WITH ( LOB_COMPACTION = ON )

GO

Reorganize index on Local server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All databases
Object: Tables and views
Compact large objects
Task start: 2017-02-19T00:00:12.
Task end: 2017-02-19T00:01:56.
Failed:(-1073548784) Executing the query "ALTER INDEX [IX_FullNCDCategories_NCDID] ON [dbo]...." failed with the following error:
"The index "IX_FullNCDCategories_NCDID" on table "FullNCDCategories" cannot be reorganized because page level locking is disabled.".
Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

Command:
GO

GO

Explanation

  1. The error Message has the following content
    • USE LNCD
      • Changing to database LNCD
    • Failed:(-1073548784) Executing the query “ALTER INDEX [IX_FullNCDCategories_NCDID] ON [dbo]….” failed with the following error
      • The name of the index is IX_FULLNCCategories
    • “The index “IX_FullNCDCategories_NCDID” on table “FullNCDCategories” cannot be reorganized because page level locking is disabled.”.
      • The targeted table is FULLNCDCategories
    • The Index can not reorganized because page level locking is disabled on the targeted table

 

Remediation

Identify impacted tables

Identify Impacted tables on current database

Code


SELECT 
		  [database] = db_name()

		, [schema]   = schema_name(tblSO.schema_id)

		, [object]   = tblSO.[name]

		, [index]    = tblSI.[name]

		, [allowRowLocks]
			= case ( tblSI.[allow_row_locks])
				when 1 then 'Yes'
				else 'No'
			  end

		, [allowPageLocks]
			= case ( tblSI.[allow_page_locks] )
				when 1 then 'Yes'
				else 'No'
			  end

FROM sys.objects tblSO 

inner join sys.indexes tblSI 

	on tblSO.object_id = tblSI.object_id 

WHERE tblSO.[type] = 'U' 

and ( 
		   ( tblSI.[allow_row_locks] = 0)  
		or ( tblSI.[allow_page_locks] = 0 ) 
	) 

and  tblSO.[is_ms_shipped] = 0 

ORDER BY 
		tblSO.[name]



Image

identifyimpactedtablesoncurrentdb_20170222_0518pm

 

Identify Impacted tables on all databases

Code


DECLARE @commandPLLD	varchar(1000) 

declare @tblObjectPageLevelLockingDisabled TABLE
(
	  [database]			sysname
	, [schema]				sysname
	, [object]				sysname
	, [index]				sysname  null
	, [allow_row_locks]		int null
	, [allow_page_locks]	int null

	, [sqlStatementPreserve] 
			as 
				  'use ' + quoteName([database]) + ';' 
				+ '  '
				+ 'ALTER INDEX '
				+ QuoteName([index])
				+ ' ON '
				+ QuoteName([schema])
				+ '.'
				+ QuoteName([object])
				+ ' '
				+ '	SET (  '
				+ '		   ALLOW_PAGE_LOCKS = '
				+ case([allow_page_locks])
						when 1 then ' ON '
						when 0 then ' OFF '
				  end
				+ '		 , ALLOW_ROW_LOCKS = '
				+ case([allow_row_locks])
						when 1 then ' ON '
						when 0 then ' OFF '
				  end

				+ '		) '


	, [sqlStatementRevise] 
			as 
				  'use ' + quoteName([database]) + ';' 
				+ '  '
				+ 'ALTER INDEX '
				+ QuoteName([index])
				+ ' ON '
				+ QuoteName([schema])
				+ '.'
				+ QuoteName([object])
				+ ' '
				+ '	SET (  '
				+ '		   ALLOW_PAGE_LOCKS = ON  '
				+ '		 , ALLOW_ROW_LOCKS = ON  '
				+ '		) '

)

SELECT @commandPLLD = 'USE [?]; SELECT [database] = db_name(), schema_name(tblSO.schema_id), tblSO.name, tblSI.[name],  tblSI.[allow_row_locks]	, tblSI.[allow_page_locks] FROM sys.objects tblSO inner join sys.indexes tblSI on tblSO.object_id = tblSI.object_id WHERE tblSO.type = ''U'' and ( ( tblSI.allow_row_locks = 0)  or ( tblSI.allow_page_locks = 0 ) ) and  tblSO.[is_ms_shipped] = 0 ORDER BY tblSO.name ' 

insert into @tblObjectPageLevelLockingDisabled
(
	  [database]
	, [schema]
	, [object]
	, [index]
	, [allow_row_locks]		
	, [allow_page_locks]	
)
EXEC sp_MSforeachdb @commandPLLD


select *
		
from   @tblObjectPageLevelLockingDisabled tblPLLD




Explanation

The code snippet above does the following:

  1. Uses sp_MSforeachdb to run the same simple discovery code across all databases
  2. Queries the sys.indexes table looking for
    • allow_page_locks equal to 0
  3. When found it captures the
    • Current SQL for preserving the current Index State
    • The SQL to revise the current state unto set allow_page_lcoks to 1 & allow_page_locks to 1

Output

identifyimpactedtables_20170222_0506pm-croppedup

 

Ran

Captured the script from the sqlStatementRevise column.

Image

jobhistory-optimizeplan-subplan-20170222-0524pm-croppedup

Explanation

All of twenty-seven minutes later, I and we are good.

 

Microsoft -LightSwitch – Error – “Request Failed with Status Code ‘500’ and Status Text ‘Internal Status Error.'”

Background

From within Visual Studio, launched an application that I am developing using LightSwitch and received one of those hard to decipher error.

Error Message

Image

requestfailedwithstatuscode500

Text

Request failed with status code ‘500’ and status text ‘Internal Server Error’.

TroubleShooting

As I know so little about LightSwitch, I get petrified anytime I see an error.

Event Viewer

Took to the system’s event viewer and found the obvious problem.

Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult – System.ServiceModel.ServiceActivationException

Image

taskcategory_webhost_2017021_0445pm-cropped-up

Textual

WebHost failed to process a request.
Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/35567111
Exception: System.ServiceModel.ServiceActivationException: The service ‘/DBDiagData.svc’ cannot be activated due to an exception during compilation. The exception message is: Memory gates checking failed because the free memory (196927488 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.. —> System.InsufficientMemoryException: Memory gates checking failed because the free memory (196927488 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.
at System.ServiceModel.Activation.ServiceMemoryGates.Check(Int32 minFreeMemoryPercentage, Boolean throwOnLowMemory, UInt64& availableMemoryBytes)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CheckMemoryCloseIdleServices(EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
— End of inner exception stack trace —
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)
Process Name: iisexpress
Process ID: 2756

Tabulate

Product Version File Version
 Log Name Application
 Source System.ServiceModel 4.0.0.0
 Event ID  3
 Task Category  WebHost
 Level  Error
 Process Name  iisexpress

 

 

ASP.NET 4.0.30319.0 –  InsufficientMemoryException

Image

taskcategory_aspnet_2017021_0616pm-croppedup

Textual

Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 2/21/2017 4:15:03 PM
Event time (UTC): 2/22/2017 12:15:03 AM
Event ID: a9e5abe2978940499d84b3ed7b2bc5a1
Event sequence: 34
Event occurrence: 1
Event detail code: 0

Application information:
Application domain: /LM/W3SVC/2/ROOT-1-131321960967478001
Trust level: Full
Application Virtual Path: /
Application Path: C:\EDiag\bin\Debug\
Machine name: DADENIJI

Process information:
Process ID: 2756
Process name: iisexpress.exe
Account name: dadeniji

Exception information:
Exception type: InsufficientMemoryException
Exception message: Memory gates checking failed because the free memory (179412992 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.
at System.ServiceModel.Activation.ServiceMemoryGates.Check(Int32 minFreeMemoryPercentage, Boolean throwOnLowMemory, UInt64& availableMemoryBytes)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CheckMemoryCloseIdleServices(EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

Request information:
Request URL: http://localhost:62496/Services/Microsoft-LightSwitch-Security-ServerGenerated-Implementation-AuthenticationService.svc/binary/GetAuthenticationInfo
Request path: /Services/Microsoft-LightSwitch-Security-ServerGenerated-Implementation-AuthenticationService.svc/binary/GetAuthenticationInfo
User host address: 127.0.0.1
User: dadeniji
Is authenticated: True
Authentication Type: Negotiate
Thread account name: dadeniji

Thread information:
Thread ID: 11
Thread account name: dadeniji
Is impersonating: False
Stack trace: at System.ServiceModel.Activation.ServiceMemoryGates.Check(Int32 minFreeMemoryPercentage, Boolean throwOnLowMemory, UInt64& availableMemoryBytes)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CheckMemoryCloseIdleServices(EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

 

Tabulate

Product Version File Version
 Log Name Application
 Source ASP.NET 4.0.30319.0
 Event ID  1309
 Task Category  Web Event
 Level  Warning
 Process Name  iisexpress.exe

 

 

Remediation

Using Microsoft’s Task Manager close some of the Applications and Processes that are sagging memory.

Our target is to get more than 5% memory available.

Dr. Heinz Lycklama :- Evolution’s Four Fatal Flaws

 

Lectures

  1. Nuclear Physicist Dr. Heinz Lycklama: Evolution’s Four Fatal Flaws
    Credit :- Northwest Creation Network
    Published On :- 2017-Jan-20th

    • Link  ( Added on 2017-Feb-20th )
    • Link ( Added on 2017-Feb-22nd )

 

Indepth

Nuclear Physicist Dr. Heinz Lycklama: Evolution’s Four Fatal Flaws

  1. Evolution’s Achilles Heels ( Book )
  2. Deterioration of the Genome
  3. Knowledge Systems
    • Science
      • Present
      • Repeatable
      • Observable
    • History
      • Past
      • Non-repeatable
      • Eyewitness Account
    • Belief
      • Past
      • Non-Repeatable
      • No Eyewitness Account
  4. Microevolution
    • All Observations involve sorting and loss of genetic information
    • We are not getting better over time, we are losing information
      • Our body is getting worse from generation to generation
  5. Fruit Flies
    • No progressive beneficial changes from simple to complex
    • No increase in quality/quantity of genetic information
  6. Evolution Benchmark
    • Organisms that are worse off than what we started with
    • No beneficial changes that resulted in a better off organism
    • Devolution
      • Devolving, not evolving

 

The Meaning of Evolution

themeaningofevolution

Knowledge System – Science / History / Believe

branches

Micro-Evolution Is Observed

microevolutionisobserved

Dobzhansky ‘s Fruit Flies

dobzhanskyfruitflies

Quote by Roger Lewin

quotebyrogerlevin

Aireforge Studio

Background

Noticed performance differences on a database job that runs across a few servers.

And, so what to do, but identify differences across the servers.

 

SQL Server Data Tools (SSDT ) & Oracle Data Modeler

I like both SQL Server Data Tools and Oracle Data Model, but really wanted something lite.

As for SSTS, I wanted something lightweight, no install.

And, as for Oracle Data Modeler, I did not want to have to download JDBC Drivers and also something that at least theoretically generate Schema Upgrade Scripts for databases other than Oracle.

 

Googled

As always Googled for free tools.

There were are a lot of hits and struggled to pay attention to fine details as to which products are actually free and the limitations; that is does it only work for 40 tables, etc.

 

AireForge Studio

Finally, found Aireforge Studio.

It seems I got lucky as it does more that I had in mind; as it compares at the Instance & Database configuration levels, as well.

Most other tools compare individual database objects.

 

Download

Aireforge is downloadable from here.

Installed

Installed it.

 

Usage

Configured

Here is out screen once we have configured  the Instances, we are targeting.

configureallservers-croppedup

Compare

Here we choose the SQL Instances, we want to compare.

compare_20170220_0447am

 

Compare Results

Instance Properties

instanceproperties_20170220_0406am-croppedup

Explanation
  1. Here, a big Gotcha
    • On the Test box, we are still running RTM.
    • Whereas on the other boxes, we are running SP2

 

Startup Properties

startupparameters_20170220_0441am-croppedup

Explanation
  1. On other environments besides D (Dev), we installed against Drive E:
    • As install targeted drive E:, the master database file are on E:
    • The full filename for the master database is used during SQL Server Startup or shall we say bootstrap

 

Job Step Configuration

jobsteps_20170220_0417am-croppedup

Explanation
  1. Unlike other compare result visuals, we are only showing three SQL Instances above
    • The reason being that we took the Test Instance down to upgrade RTM to the latest Service Pack ( SP2 )
  2. The lone Job Step identified is “IndexOptimize

 

Blog

AireForge’s original name is OmniCompare.

Here are some other links:

  1. Blog

Skype – High I/O

Background

Noticed my computer running high I/O.

And, so launched Task Manager to try to determine cause.

 

Task Manager

ScreenShot

Here is a screenshot from a few minutes ago.

taskmanager_processes_20170219_0408pm

Measuring

The items we want to measure are I/O Reads and I/O Writes as they show us the number of I/Os that are occurring.

We do want to stay watching for a bit to gauge how frequently they are being updated and at what rate.

And, later consider I/O Read Bytes and I/O Write Bytes.

 

Processes Identified

Here are the processes identified:

  1. svchost.exe
  2. Skype.exe
  3. sqlservr.exe
  4. System
  5. csrss.exe
  6. jusched.exe

 

Skype.exe

Why?

I know that I am not running Skype and so what is with it running high I/O

 

System Configuration Utility ( msconfig.exe )

Launch msconfig.exe to see if skype is configured to auto-start.

Looked for it under the “Services” and “Startup” Tab.

Tab – Startup

Tab – Startup – Current

tab-system-20170218-0817pm

Explanation

  1. Found Skype

Tab – Startup – Disabled

Disabled Skype as a Startup Item

tab-system-20170218-0818pm

 

Desktop – Status Bar

Access the Skype icon from the Desktop Status Bar.

statusbar-skype

And, chose the Quit option.

 

Skype Configuration

Btw, we could have disabled Skype from auto-starting through the Skype Interface, itself.

To do so, please launch Skype and log in.

Tools – Options

Please access the Options via the menu item Tools\ Options.

Tools – Options – General Settings

Start Skype When I Start Windows – Checked

We want to stay on the General Settings Tab.

And, focus in on “Start Skype when I start Windows“.

skypeoptions-20170219-0424pm

 

Start Skype When I Start Windows – Unchecked

skypeoptions-20170219-0426pm