Mother Theresa – “Come be my light”

 

Introduction

There are some topics that need very little introduction.  Such topics are so common place and so deeply threaded into the human experience and trying to separate coverage of them into well defined subject areas is a bit as if one is trying a bit too much to be textually correct.

Definition of Depression

I have only read one book on depression and it is Andrew Solomon’s “Noon Day Daemon”.  Here is the opening salvo:

 

Chapter 1: Depression

Depression is the flaw in love. To be creatures who love, we must be creatures who can despair at what we lose, and depression is the mechanism of that despair. When it comes, it degrades one’s self and ultimately eclipses the capacity to give or receive affection. It is the aloneness within us made manifest, and it destroys not only connection to others but also the ability to be peacefully alone with oneself. Love, though it is no prophylactic against depression, is what cushions the mind and protects it from itself. Medications and psychotherapy can renew that protection, making it easier to love and be loved, and that is why they work. In good spirits, some love themselves and some love others and some love work and some love God: any of these passions can furnish that vital sense of purpose that is the opposite of depression. Love forsakes us from time to time, and we forsake love. In depression, the meaninglessness of every enterprise and every emotion, the meaninglessness of life itself, becomes self-evident. The only feeling left in this loveless state is insignificance.

 

Depression is the flaw in love. To be creatures who love, we must be creatures who can despair at what we lose, and depression is the mechanism of that despair.

 

Grief is depression in proportion to circumstance; depression is grief out of proportion to circumstance.

 

Mother Theresa – “Come be my light”

 

Many years ago I was privileged to hear a Sunday Sermon delivered by a psychologist.

In that sermon he used Mother Theresa’s letters to bring home the depths of depression in ordinary and not so ordinary lives.

Here is James Martin’s New York Time piece:

 

THE stunning revelations contained in a new book, which show that Mother Teresa doubted God’s existence, will delight her detractors and confuse her admirers. Or is it the other way around?

The private journals and letters of the woman now known as Blessed Teresa of Calcutta will be released next month as “Mother Teresa: Come Be My Light,” and some excerpts have been published in Time magazine. The pious title of the book, however, is misleading. Most of its pages reveal not the serene meditations of a Catholic sister confident in her belief, but the agonized words of a person confronting a terrifying period of darkness that lasted for decades.

“In my soul I feel just that terrible pain of loss,” she wrote in 1959, “of God not wanting me — of God not being God — of God not existing.” According to the book, this inner turmoil, known by only a handful of her closest colleagues, lasted until her death in 1997.

Gleeful detractors may point to this as yet another example of the hypocrisy of organized religion. The woman widely known in her lifetime as a “living saint” apparently didn’t even believe in God.

It was not always so. In 1946, Mother Teresa, then 36, was hard at work in a girls school in Calcutta when she fell ill. On a train ride en route to some rest in Darjeeling, she had heard what she would later call a “voice” asking her to work with the poorest of the poor, and experienced a profound sense of God’s presence.

A few years later, however, after founding the Missionaries of Charity and beginning her work with the poor, darkness descended on her inner life. In 1957, she wrote to the archbishop of Calcutta about her struggles, saying, “I find no words to express the depths of the darkness.”

But to conclude that Mother Teresa was a crypto-atheist is to misread both the woman and the experience that she was forced to undergo.

Even the most sophisticated believers sometimes believe that the saints enjoyed a stress-free spiritual life — suffering little personal doubt. For many saints this is accurate: St. Francis de Sales, the 17th-century author of “An Introduction to the Devout Life,” said that he never went more than 15 minutes without being aware of God’s presence. Yet the opposite experience is so common it even has a name. St. John of the Cross, the Spanish mystic, labeled it the “dark night,” the time when a person feels completely abandoned by God, and which can lead even ardent believers to doubt God’s existence.

During her final illness, St. Thérèse of Lisieux, the 19th-century French Carmelite nun who is now widely revered as “The Little Flower,” faced a similar trial, which seemed to center on doubts about whether anything awaited her after death. “If you only knew what darkness I am plunged into,” she said to the sisters in her convent. But Mother Teresa’s “dark night” was of a different magnitude, lasting for decades. It is almost unparalleled in the lives of the saints.

In time, with the aid of the priest who acted as her spiritual director, Mother Teresa concluded that these painful experiences could help her identify not only with the abandonment that Jesus Christ felt during the crucifixion, but also with the abandonment that the poor faced daily. In this way she hoped to enter, in her words, the “dark holes” of the lives of the people with whom she worked. Paradoxically, then, Mother Teresa’s doubt may have contributed to the efficacy of one of the more notable faith-based initiatives of the last century.

Few of us, even the most devout believers, are willing to leave everything behind to serve the poor. Consequently, Mother Teresa’s work can seem far removed from our daily lives. Yet in its relentless and even obsessive questioning, her life intersects with that of the modern atheist and agnostic. “If I ever become a saint,” she wrote, “I will surely be one of ‘darkness.’ ”

Mother Teresa’s ministry with the poor won her the Nobel Prize and the admiration of a believing world. Her ministry to a doubting modern world may have just begun.

Spiritual Books

An in-depth read of spiritual books will illuminate the fact that depression is part of the human experience and thus anyone who has an interest in human beings and their well being should familiarize self with the sincerity of depression; both introspectively and otherwise.

 

John the Baptist

John the Baptist, yes the same John whom Jesus said “there is no one greater born of a woman“, sat in prison and doubted.

Matthew 11:2-3
When John, who was in prison, heard about the deeds of the Messiah, he sent his disciples to ask him, “Are you the one who is to come, or should we expect someone else?”

 

Elijah

 1st Kings 19 1-4
And Ahab told Jezebel all that Elijah had done, also how he had executed all the prophets with the sword. Then Jezebel sent a messenger to Elijah, saying, “So let the gods do to me, and more also, if I do not make your life as the life of one of them by tomorrow about this time.” And when he saw that, he arose and ran for his life, and went to Beersheba, which belongs to Judah, and left his servant there.

But he himself went a day’s journey into the wilderness, and came and sat down under a broom tree. And he prayed that he might die, and said, “It is enough! Now, LORD, take my life, for I am no better than my fathers!”

 

Moses

Last weekend my brothers and I hung out. We spoke a bit about Moses.  Moses earned one of the most priceless commendation in all of the scriptures:

 

Numbers 12 6-8

he said, “Listen to my words: “When there is a prophet among you, I, the LORD, reveal myself to them in visions, I speak to them in dreams.

But this is not true of my servant Moses; he is faithful in all my house.

With him I speak face to face, clearly and not in riddles; he sees the form of the LORD. Why then were you not afraid to speak against my servant Moses?”

 

Yet, later on it appears that Moses erred a bit.

Carlos A. Bechara’s fresh and insightful take on Moses and Aaron’s actions as laid out in Numbers 20 is worthy of a good read.

Please follow along @

http://spectrummagazine.org/article/sabbath-school/2009/11/22/exploring-sin-moses-and-aaron

Others Perspectives

Here are some of what others have to say:

WILLIE X. LIN, student in the M.F.A. program in creative writing at Washington University in St. Louis

http://www.nytimes.com/2010/09/26/opinion/26gradstudents.html?_r=0

Remember to take some time away from campus — from the demands of schoolwork and the trappings of the college social life. Explore the town you’re living in. Meet people who are not professors or fellow students. If you spend all of your time on school grounds, then it becomes too easy for the criticism from an occasional unkind professor or the conflict with a roommate to take on a monstrous scale. And to let that happen is to suffer from a mistake of emphasis; college should be a part of, but not the entire scope of, your existence for the next few years.

In Virginia Woolf’s novel “Mrs. Dalloway,” characters are troubled and traumatized by their inability to maintain a proper “sense of proportion”; ordinary tasks — life itself, for one of the characters — become outsized and unmanageable.

 

Summary

 

My pastor likes to say that he has too much respect for many in the church to give an advice. I share that reticent; especially in an area such as weighty as this.

 

 

References

Andrew Solomon

 

Mother Theresa

 

John the Baptist

 

Elijah

 

 Moses

 

Others Pespectives

 

Matthew Parris – As an atheist, I truly believe Africa needs God

Prelude

Back in March 2014, I listened in on a Ravi Zacharias, Michael Ramsden, and Nabeel Qureshi discussion at University of Uppsala ( Universitetshuset), Sweden.

Here are links to the  RZIM’s videoes:

Everyone knows these guys dig deep.  Here are some of what was shared:

Ravi Zacharias:

- Moses gave 613 laws
– David took the 613 and reduce it to 15
– Isaiah reduced it to 11
– Micah reduced it to 3  – “What does the Lord require of you ? But to do justly, to love mercy, and to walk humbly with your God”
– One would have thought Jesus will reduce it to 1, he didn’t. He reduced it to 2 — “Love the Lord your God and love your neighbor as yourself on these 2 commandments stood all the laws”

discipline your prayer life

An expenditure of words without an income of ideas will lead to conceptual bankruptcy

learn how to define pleasure

Live in such a way that you will draw lines that you will not cross

In the same video series, there is a short but important mention of Loyal D. Rue’s work.  Please refer to the Reference section and follow the link to get a summarized read on Loyal’s work.

At the end of the 2nd video, Michael Ramsden spoke about Matthew Parris’ dated opinion piece.

Matthew Parris

Here is Matthew Parris Opinion piece:

Matthew Parris: As an atheist, I truly believe Africa needs God
By TIMES ONLINE

Added: Wednesday, 07 January 2009 at 4:00 PM

http://old.richarddawkins.net/articles/3502-matthew-parris-as-an-atheist-i-truly-believe-africa-needs-god

Before Christmas I returned, after 45 years, to the country that as a boy I knew as Nyasaland. Today it’s Malawi, and The Times Christmas Appeal includes a small British charity working there. Pump Aid helps rural communities to install a simple pump, letting people keep their village wells sealed and clean. I went to see this work.

It inspired me, renewing my flagging faith in development charities. But travelling in Malawi refreshed another belief, too: one I’ve been trying to banish all my life, but an observation I’ve been unable to avoid since my African childhood. It confounds my ideological beliefs, stubbornly refuses to fit my world view, and has embarrassed my growing belief that there is no God.

Now a confirmed atheist, I’ve become convinced of the enormous contribution that Christian evangelism makes in Africa: sharply distinct from the work of secular NGOs, government projects and international aid efforts. These alone will not do. Education and training alone will not do. In Africa Christianity changes people’s hearts. It brings a spiritual transformation. The rebirth is real. The change is good.

I used to avoid this truth by applauding – as you can – the practical work of mission churches in Africa. It’s a pity, I would say, that salvation is part of the package, but Christians black and white, working in Africa, do heal the sick, do teach people to read and write; and only the severest kind of secularist could see a mission hospital or school and say the world would be better without it. I would allow that if faith was needed to motivate missionaries to help, then, fine: but what counted was the help, not the faith.

But this doesn’t fit the facts. Faith does more than support the missionary; it is also transferred to his flock. This is the effect that matters so immensely, and which I cannot help observing.

First, then, the observation. We had friends who were missionaries, and as a child I stayed often with them; I also stayed, alone with my little brother, in a traditional rural African village. In the city we had working for us Africans who had converted and were strong believers. The Christians were always different. Far from having cowed or confined its converts, their faith appeared to have liberated and relaxed them. There was a liveliness, a curiosity, an engagement with the world – a directness in their dealings with others – that seemed to be missing in traditional African life. They stood tall.

At 24, travelling by land across the continent reinforced this impression. From Algiers to Niger, Nigeria, Cameroon and the Central African Republic, then right through the Congo to Rwanda, Tanzania and Kenya, four student friends and I drove our old Land Rover to Nairobi.

We slept under the stars, so it was important as we reached the more populated and lawless parts of the sub-Sahara that every day we find somewhere safe by nightfall. Often near a mission.

Whenever we entered a territory worked by missionaries, we had to acknowledge that something changed in the faces of the people we passed and spoke to: something in their eyes, the way they approached you direct, man-to-man, without looking down or away. They had not become more deferential towards strangers – in some ways less so – but more open.

This time in Malawi it was the same. I met no missionaries. You do not encounter missionaries in the lobbies of expensive hotels discussing development strategy documents, as you do with the big NGOs. But instead I noticed that a handful of the most impressive African members of the Pump Aid team (largely from Zimbabwe) were, privately, strong Christians.

€œPrivately,€ because the charity is entirely secular and I never heard any of its team so much as mention religion while working in the villages. But I picked up the Christian references in our conversations. One, I saw, was studying a devotional textbook in the car. One, on Sunday, went off to church at dawn for a two-hour service.

It would suit me to believe that their honesty, diligence and optimism in their work was unconnected with personal faith. Their work was secular, but surely affected by what they were. What they were was, in turn, influenced by a conception of man’s place in the Universe that Christianity had taught.

There’s long been a fashion among Western academic sociologists for placing tribal value systems within a ring fence, beyond critiques founded in our own culture: “theirs” and therefore best for Anathema€; authentic and of intrinsically equal worth to ours.

I don’t follow this. I observe that tribal belief is no more peaceable than ours; and that it suppresses individuality. People think collectively; first in terms of the community, extended family and tribe. This rural-traditional mindset feeds into the €œbig mana€ and gangster politics of the African city: the exaggerated respect for a swaggering leader, and the (literal) inability to understand the whole idea of loyal opposition.

Anxiety – fear of evil spirits, of ancestors, of nature and the wild, of a tribal hierarchy, of quite everyday things – strikes deep into the whole structure of rural African thought. Every man has his place and, call it fear or respect, a great weight grinds down the individual spirit, stunting curiosity. People won’t take the initiative, won’t take things into their own hands or on their own shoulders.

How can I, as someone with a foot in both camps, explain? When the philosophical tourist moves from one world view to another he finds – at the very moment of passing into the new – that he loses the language to describe the landscape to the old. But let me try an example: the answer given by Sir Edmund Hillary to the question: Why climb the mountain? €œBecause it’s there, he said.

To the rural African mind, this is an explanation of why one would not climb the mountain. It’s… well, there. Just there. Why interfere? Nothing to be done about it, or with it. Hillary’s further explanation – that nobody else had climbed it – would stand as a second reason for passivity.

Christianity, post-Reformation and post-Luther, with its teaching of a direct, personal, two-way link between the individual and God, unmediated by the collective, and unsubordinate to any other human being, smashes straight through the philosophical/spiritual framework I’ve just described. It offers something to hold on to to those anxious to cast off a crushing tribal group-think. That is why and how it liberates.

Those who want Africa to walk tall amid 21st-century global competition must not kid themselves that providing the material means or even the know-how that accompanies what we call development will make the change. A whole belief system must first be supplanted.

And I’m afraid it has to be supplanted by another. Removing Christian evangelism from the African equation may leave the continent at the mercy of a malign fusion of Nike, the witch doctor, the mobile phone and the machete.

References

References – Noble Lie

References – Matthew Parris

 

 

There is a balm in Gilead

 

Introduction

Had a lunch yesterday with a couple of new and fast friends.  During lunch we shared the faith that we share.

As they were expatriates I asked them how difficult it is to broach the subject of religion in work environments.

And, they gladly replied that 95% of the natives in their country self-Identifies as belonging to a particular religion.

I suppose that with such a high degree of monotheism, one is usually on safe grounds in such countries.

One of them also discussed her parent’s crossing over from the familial religion to a new one.  She spoke of deliverance from an unsuccessfully diagnosed medical illness being the principal catalyst.

 

 

 

Old Negro Spirituals

As for me, discovering “Old Negro Spirituals” awakened me to what is important, and what is not.

The Thomas Dorsey’s and Mahalia Jackson’s of world’s past evoke such a sweet, honest soul.

 

Anchored on “Jeremiah 8:22″:

Is there no balm in Gilead?
Is there no physician there?
Why then has the health of the daughter of my people not been restored?

 

here is a moving tribute:

Balm in Gilead
https://www.youtube.com/watch?v=DFMY4V7RdbU

 

 

References

 

References – Balm  in Gilead

 

 

References – Thomas Dorsey

 

Microsoft – SQL Server – Permissions – “View Database State”

Background

In our last post we spoke a bit about the “View Database State” permission.

In this post, we will explore it a bit further and attempt to determine it’s use case.

 

Create Database User and grant it “Database View State” permission

 

Let us create the user and grant the designated permission.

 

set noexec off
go

USE [master]
GO

if  suser_sid('viewdatabasestate') is not null
begin
    set noexec on
end
go


CREATE LOGIN [viewdatabasestate] WITH PASSWORD=N'hello'
        , DEFAULT_DATABASE=[master]
        , CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

set noexec off
go


if db_id('DBLAB') is null
begin
    exec('create database [DBLAB]')
end
go

if db_id('DBLAB') is null
begin
    set noexec on
end
go

use [DBLAB]
go

if  user_id('viewdatabasestate') is not null
begin

    set noexec on

end
go

create user [viewdatabasestate] from LOGIN [viewdatabasestate];
go

set noexec off
go

grant view database state to [viewdatabasestate]
go

set noexec off
go

 

List Database Level Permissions Grantees

Let us list which users have Database level permissions.

 

select 
          p.class_desc                      as [permissionClass]
        , p.[type]                          as [permissionType]
        , p.[permission_name]               as [permissionName] 
        , p.[state_desc]                    as [permissionState]
        , user_name(p.grantee_principal_id) as DBUser     
        , SUSER_SNAME(dp.sid)               as SQLInstanceUser
                            
from    sys.database_permissions p

        inner   JOIN sys.database_principals dp

                    on     p.grantee_principal_id = dp.principal_id

where  p.class_desc = 'DATABASE'

 

 

Image:

 

viewDatabaseState

 

We can see that our SQL Login (viewdatabasestate) has “view database state” permission.

 

DATABASE VIEW STATE – Review use case

 

What does it buy us?

 

Check for missing indexes

 

Let us see if it allows us to check for missing indexes

 

/*
    Check for missing indexes
*/
SELECT
          d.[object_id],
          s = OBJECT_SCHEMA_NAME(d.[object_id]),
          o = OBJECT_NAME(d.[object_id]),
          d.equality_columns,
          d.inequality_columns,
          d.included_columns,
          s.unique_compiles,
          s.user_seeks,
          s.last_user_seek,
          s.user_scans
          , s.last_user_scan
FROM sys.dm_db_missing_index_details AS d
        INNER JOIN sys.dm_db_missing_index_groups AS g
            ON d.index_handle = g.index_handle
        INNER JOIN sys.dm_db_missing_index_group_stats AS s
            ON g.index_group_handle = s.group_handle
WHERE d.database_id = DB_ID()
AND OBJECTPROPERTY(d.[object_id], 'IsMsShipped') = 0;

 

Output:

 

TheUserdoesnothavepermissiontoperformthisaction

 

 

Check for index fragmentation

Let us see if it allows us to check for index fragmentation

 

SELECT
            db_name() as databaseName
          , OBJECT_NAME(indexStats.OBJECT_ID) AS TableName
          , ind.name AS IndexName
          , indexstats.index_type_desc AS IndexType
          , indexstats.avg_fragmentation_in_percent 

FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats 

        LEFT OUTER JOIN sys.indexes ind  
            ON indexstats.object_id  = ind.object_id  
            AND indexstats.index_id = ind.index_id

 

Output:
indexFragmentationStats

 

Check most expensive queries:

 

Let us borrow Michael K. Campbell query for getting most expensive queries:

Performance Tip: Find Your Most Expensive Queries
Sep 13, 2012 by Michael K. Campbell in Practical SQL Server
http://sqlmag.com/blog/performance-tip-find-your-most-expensive-queries

 

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;

WITH XMLNAMESPACES (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan'),
core AS (
        SELECT
                eqp.query_plan AS [QueryPlan],
                ecp.plan_handle [PlanHandle],
                q.[Text] AS [Statement],
                n.value('(@StatementOptmLevel)[1]', 'VARCHAR(25)') AS OptimizationLevel ,
                ISNULL(CAST(n.value('(@StatementSubTreeCost)[1]', 'VARCHAR(128)') as float),0) AS SubTreeCost ,
                ecp.usecounts [UseCounts],
                ecp.size_in_bytes [SizeInBytes]
        FROM
                sys.dm_exec_cached_plans AS ecp
                CROSS APPLY sys.dm_exec_query_plan(ecp.plan_handle) AS eqp
                CROSS APPLY sys.dm_exec_sql_text(ecp.plan_handle) AS q
                CROSS APPLY query_plan.nodes ('/ShowPlanXML/BatchSequence/Batch/Statements/StmtSimple') AS qn ( n )
)

SELECT TOP 100
        QueryPlan,
        PlanHandle,
        [Statement],
        OptimizationLevel,
        SubTreeCost,
        UseCounts,
        SubTreeCost * UseCounts [GrossCost],
        SizeInBytes
FROM
        core
ORDER BY
        GrossCost DESC
        --SubTreeCost DESC

 

Image

Unfortunately, it too returns “user does not have permission“.

TheUserdoesnothavepermissiontoperformthisaction

 

 

 

Check SYS Schema

Let us check sys schema objects such as sys.indexes ….

First, please grant read permissions on the sys schema to viewdatabasestate.

 

GRANT SELECT ON SCHEMA ::sys TO [viewdatabasestate]
go

 

Then let us try to list indexes

 

select *
from   sys.indexes ind 

 

But, we got back an empty list.

 

The only way to get data returned is to grant read permissions on the actual objects\tables or grant

db_datareader role ( which lets the grantee read all tables ).

 

--grant read to each object
grant select on dbo.custList TO [viewdatabasestate]

--add db_datareader role
EXEC sp_addrolemember 'db_datareader', [viewdatabasestate]

 

 

Check Table Statistics

Let us check for Statistics

 

Query:

SELECT 
          OBJECT_NAME(object_id) AS ObjectName
         ,STATS_DATE(object_id, stats_id) AS StatisticsDate
         , *
FROM sys.stats

 

Output:

viewObjectStatistics

 

Output:

No errors, but still empty list.

 

db_datareader permission

 

To view object level statistics one needs db_datareader role permission.

EXEC sp_addrolemember 'db_datareader', [viewdatabasestate]

 

 

Needing additional permissions has its own problems in terms of “separation of concerns”; having

insight into performance metrics is sometimes useful to satisfy monitoring requirements, and one

might be reticent to grant additional permissions.

 

Summary

 

So Database View State allows us to check for index fragmentation, but we are unable to check for

missing indexes, table statistics,  nor review the Instance’s  query plans.

The error message does not imbue us; as it is a generic “The user does not have permission to perform

this action.”

 

 

Listening To

 

I am here listening to 3 of my favorites – David Foster, Michael Buble, and Blake Shelton

Michael Buble and Blake Shelton – Home ( Live 2008 ) HD

https://www.youtube.com/watch?v=Q33YUxnGvwE

 

 

Addendum

 

August 6th,2014

The error message was enhanced sometimes between v2005 and v2014.


Msg 300, Level 14, State 1, Line 7
VIEW SERVER STATE permission was denied on object 'server', database 'master'.
Msg 297, Level 16, State 1, Line 7
The user does not have permission to perform this action.

 

 

References

Microsoft – SQL Server – Dynamic Management Views – Granting Access to Non Sysadmin

Background

One the great satires in my life is seeing how songs lyrics apply.  I like Craig Morgan’s -” That’s What I Love About Sunday” and I will use it as background music as I opined about  http://connect.microsoft.com.

I know it is a good, well founded idea for Vendors to allow the community to solicit bug fixes and suggest enhancements.

 

Satire

But, the satire about it, is how quickly MSFT engineers quickly stamp the ticket as noted below:

 

 The following fields or values changed:

Field “Status” changed from “Active” to “Resolved“.

Field “Resolution” changed from “Not Set” to “Won’t Fix“.

 

About 3 weeks ago, I created a Connect Item:

Implement “View Database State” permission
https://connect.microsoft.com/SQLServer/feedbackdetail/view/918102/implement-view-database-state-permission

 

The underlying premise ( as described in the ticket ) is:

  • In a multi-tenant environments, DBAs can quickly say “NO to developers and Application Engineers requesting” “View Server State” permissions.
  • The basis of the No might be that “View Server State” leaks information (object names, fragmentation level, missing indexes) about other databases.

 

And, some of the opportunities are:

  • Access to Dynamic Management Views offers unparalleled insight into database performance constraints
  • Faster development
  • Interested parties do not have to wait till problem occurs to be aware of potential problems ( missing indexes, fragmentation, I/O Stats)
  • Need is tangential to others that are already in place at database level such as “Showplan”

 

Microsoft SQL Server Teams Response

So here is Microsoft’s response:

Do you mean more DMVs should be modified to only require VIEW DATABASE STATE? VIEW DATABASE STATE does exist – see:
select * from sys.fn_builtin_permissions(null) where permission_name = ‘VIEW DATABASE STATE’

 

 

sys.fn_builtin_permissions?

 

I went ahead and ran:


select *
from sys.fn_builtin_permissions(null)
where permission_name = 'view database state'


And, got back

 

viewDatabaseState

 

 

Here is my take

 

  • I am thankful that now I know about “view database state” role
  • But, what use is it? Which Dynamic Management Views ( DMVs ) does it have access to.  Are there plans to extend it further
  • Why close a ticket and mark it as completed when it appears that the engineer is still soliciting a feedback
  • Preserving Anonymity serves its own purpose, but that anonymity mostly benefits the person invoking it.
  • On the other-hand it hinders the communal spirit and openness that was probably the intent of the forum’s founding members
  • Another point that comes to mind is how does management measure the value of these forums – do you measure it based on simple metrics — lag time between ticket creation and closure, outstanding tickets
  • Or does one have to dig deeper into follow-up feedback.  Once a ticket is closed, can the original initiator give a feedback and satisfaction level

 

 

Summary

 

As I said earlier, there is so much I love about Microsoft’s Connect.  And, yet there are a few things that drives delay and opacity.

 

References

Server and Database Roles

 

Microsoft – SQL Server – Integration Services (SSIS) – Business Intelligence Studio – Dealing with data integrity errors – Using Package Logging

Introduction

Wanted to see how useful SSIS Package logging is when run-time data inconsistency errors occur.

 

Enable Logging at SSIS Package Level

 

  1. Launch Business Intelligence Studio (BIDS)
  2. Load SSIS Project
  3. Access SSIS Package
  4. Access SSIS Design pane
  5. Access the “Control Flow” tab
  6. In the Control-Flow tab, right click in an empty spot, and from the drop-down menu, select the “Logging” menu item
  7. In the “Configure SSIS Logs”, make the changes detailed below
    1. In the Containers’s tab, enable logging at the package level
    2. In the Providers and Logs tab, add “SSIS log provider for Text files” as a provider type
    3. In the Details tab, enable “OnError” / “OnTaskFailed” /”OnWarning”

 

Before

ConfigureSSISLogs-Before

 

 

After – Providers and Logs

 

ConfigureSSISLogs-After-ProviderAndLogs

 

 

After – Providers and Logs

 

ConfigureSSISLogs-After-Details

 

 

Log File Contents

Here is what we captured in the log-file:



OnError,PF00N9ME20B7,DBLAB\dadeniji,Data Flow Task,{675AA3C7-8057-41FB-8F05-6929845F2746},{7B5D3817-390E-4B87-BAE6-3C1DD41D00D3},8/4/2014 10:10:44 AM,8/4/2014 10:10:44 AM,-1071636471,0x,SSIS Error Code DTS_E_OLEDBERROR.  
An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 11.0"  Hresult: 0x80004005  Description: "Unspecified error".

OnError,PF00N9ME20B7,DBLAB\dadeniji,xferUsingLogging,{A51961CB-EB18-48C8-8A38-67EE876A7F9A},{7B5D3817-390E-4B87-BAE6-3C1DD41D00D3},8/4/2014 10:10:44 AM,8/4/2014 10:10:44 AM,-1071636471,0x,SSIS Error Code DTS_E_OLEDBERROR.  
An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 11.0"  Hresult: 0x80004005  Description: "Unspecified error".

OnError,PF00N9ME20B7,DBLAB\dadeniji,Data Flow Task,{675AA3C7-8057-41FB-8F05-6929845F2746},{7B5D3817-390E-4B87-BAE6-3C1DD41D00D3},8/4/2014 10:10:44 AM,8/4/2014 10:10:44 AM,-1071607780,0x,
There was an error with 
OLE DB Destination.Inputs[OLE DB Destination Input].Columns[inceptionDate]
on OLE DB Destination.Inputs[OLE DB Destination Input]. 
The column status returned was: 
"The value violated the integrity constraints for the column.".

OnError,PF00N9ME20B7,DBLAB\dadeniji,xferUsingLogging,{A51961CB-EB18-48C8-8A38-67EE876A7F9A},{7B5D3817-390E-4B87-BAE6-3C1DD41D00D3},8/4/2014 10:10:44 AM,8/4/2014 10:10:44 AM,-1071607780,0x,
There was an error with 
OLE DB Destination.Inputs[OLE DB Destination Input].Columns[inceptionDate] 
on OLE DB Destination.Inputs[OLE DB Destination Input]. 
The column status returned was: 
"The value violated the integrity constraints for the column.".



 

 

 

SQL Server Profiler

 

Let us see how useful SQL Server Profiler is when we encounter incomplete data errors.

 

Events Selection

 

Here is the “Events Selection”

 

Events Selection

SQLServerProfiler-TraceProperties

 

 

 Tabulated

Events Event Detail Column
Errors and Warnings
ErrorLog Error
EventLog Error
Exception Error
User Error Message Error
Stored Procedures
 RPC:Completed  Error
TSQL
SQL:BatchStart
SQL:BatchCompleted  Error

 

 

 

 

Events

Here are the captured events :

 

SQLServerProfiler

 

Interpretation

There are a couple of points we noticed when we executed the SSIS package and reviewed the generated “SQL Server Profiler” session:

  • There are no occurrences of “Errors and Warnings”.  This means that our ETL tool internally and gracefully handles the errors
  • The SQL:BatchCompleted event exposes a value 1 in the Error Column

 

 

 

Summary

In summary, SSIS Logging can be useful to capture run time errors.

But, unfortunately the errors captured is not very precise.

Microsoft – SQL Server – Integration Services (SSIS) – Business Intelligence Studio – Dealing with data integrity errors

Background

During Data transfer operations, data compatibility mismatch will occasionally surface.

Microsoft Business Intelligence Studio has a built in tooling to address such problems.  Let us touch on one of them.

 

 

Set up Lab

Let us create our database objects.

We have a simple database structure with two tables; dbo.custList and dbo.custListDest.  The only difference between the two tables is that the “inceptionDate” can be null in the source table, but not in the destination table.

Here is what our tables look like in SQL Server Management Studio.

Design Table – dbo.custList ( Source Table )

 

dbo-custList

 

 

Design Table – dbo.custListDest ( Destination Table )

 

dbo-custListDest

 

 

Data – dbo.custList ( Source Table )

Here is what our data looks like.

Notice that using CTRL-0 we intentionally nulled out some rows’ inceptionDate column.

 

dbo-custList (data)

 

Business Intelligence Studio (BIDS)

 

Control

Here is what our BIDS Task Flowchart looks like:

 

Control

 

 

Task – Execute SQL Task

Our first task is to remove all records from the destination table, truncate table dbo.custListDest.

 

 

ExecuteSQLTask

 

Task – Data Flow Task

 

Data Flow Task

Here is our Data Flow Task

DataFlowTask

 

Thank goodness the flow is  straightforward.  It starts off with our OLE DB Source, into our OLE DB Destination, and errors are logged into the Flat File Destination.

 

OLE DB Destination – Connection Manager

 

OLEDBDestinationEditor--ConnectionManager

 

 

OLE DB Destination – Mappings

 

OLEDBDestinationEditor--Mappings

 

 

OLE DB Destination – Error Output

 

OLEDBDestinationEditor--ErrorOutput

 

OLE DB Destination Editor – Settings

 

Tab Element Value
Connection Manager
Data Access Mode Table or view fast load
Keep Identity  Yes
Keep nulls  Yes
Table lock  Off
Check Constraints Yes
 Rows per batch  Please use an optimal value based on what your environment can support
 Mappings
 Please map the columns based on your need
Error Output
 Error  Redirect Error

 

 

 

Data Flow Path Editor

Pasted below is us passing off errors unto an OLEDB Destination Output.

DataFlowPathEditor

 

Settings

DataFlowPathEditor

 

 

Flat File Destination

Flat File Destination Editor – Connection Manager

 

FlatFileDestinationEditor-ConnectionManager-Header

 

Flat File Destination Editor – Flat File Connection Manager Editor

Within the FlatFile Destination Editor, we clicked on the Edit button to customize our Error File.

FlatFileConnectionManagerEditor

 

Flat File Destination Editor – Mappings

Here are the columns that we want to capture in our error file.

FlatFileDestinationEditor-Mappings

 

Settings

 

Tab Element Value
Connection Manager
Overwrite data in the file Yes
File name Please choose an existing folder in your user folder
Unicode  Yes ( to support internationalization )
Format Delimited
Column names in the first data row Yes

 

 

 

 

 

 

Profiling

 

SQL Server Profiler

As good developers we ran SQL Server profiler and took a quick look at the SQL Traffic.  Seeing that “insert bulk” is in use, we feel comfortable about the throughput.

 

SQLServerProfiler-InsertBulk

 

 

 

Listening To

Listening to Yvonne DeVaughn sing “Healing Waters for the Soul”
https://www.youtube.com/watch?v=sgfBByJjfh8

Yvonne Devaughn is a director with AVA (Advocacy for victims of Abuse). And, AVA is an important component of the community outreach of Evangelical Covenant Church.

You can read more here – http://www.npcwm.org/what-we-do/ava/